Как установить ImageView для отображения другой позиции в PNG? (Анимированные анимации для Android)
У меня есть следующий png:
![введите описание изображения здесь]()
Каждый значок равен 100X100 px. Всего 800X100 px.
У меня есть следующий ImageView xml:
<ImageView
android:id="@+id/CycleStageImage"
android:layout_width="100dp"
android:layout_height="100dp">
Я хотел бы установить CycleStageImage для отображения другого значка (100 100) по интервалу таймера 1 секунды назад и вперед.
У меня возникла проблема с созданием кода, который перемещается по оси этого PNG.
Я пробовал следующие ссылки из нескольких ссылок на SOF, но не повезло:
//first try - not working
//Resources res = mainActivity.ApplicationContext.Resources;
//Bitmap bitmap = BitmapFactory.DecodeResource(res, Resource.Id.CycleImage);
//BitmapDrawable bitmapDrawable = new BitmapDrawable(Resources.System, bitmap);
//ClipDrawable clipDrawable = new ClipDrawable(bitmapDrawable, GravityFlags.Center, ClipDrawable.Horizontal);
//clipDrawable.SetBounds(100, 100, 100, 100);
//clipDrawable.SetLevel(100);
//imageView.SetImageResource(Android.Resource.Color.Transparent);
//imageView.SetImageDrawable(clipDrawable);
//second try - shows only part of the left top corner
//double TUNNING = 0.5; //0.5 cut in half
//Bitmap srcBmp = BitmapFactory.DecodeResource(Resources.System, cycleStage);
//Bitmap modBmp = Bitmap.CreateBitmap(
// srcBmp,
// 0,
// srcBmp.Height, // TUNNING
// srcBmp.Height,
// srcBmp.Height
// );
//third try - same as the second try.
//int START_X = 0;
//int START_Y = 100;
//int WIDTH_PX = 100;
//int HEIGHT_PX = 100;
//// Crop bitmap
//Bitmap newBitmap = Bitmap.CreateBitmap(SOURCE_BITMAP, START_X, START_Y, WIDTH_PX, HEIGHT_PX, null, false);
//// Assign new bitmap to ImageView
//imageView.SetImageBitmap(newBitmap);
Я следил за учебником Android:
https://developer.android.com/guide/topics/resources/drawable-resource.html#Clip
но не повезло..
Было бы также полезно помочь с таймером, а также с png.
Спасибо!
Ответы
Ответ 1
Наконец, я получил его для работы, выполнив следующие шаги:
(Хотя я признаю его немного хромым...)
- Я разделил вышеуказанный PNG на 8 (100x100) PNG каждый с помощью онлайн-инструмента → PNG Splitter
- Я создал GIF с помощью онлайн-инструмента - GIF Maker → http://gifmaker.me/
- Я поместил сохраненный gif в папку "Assets" и изменил его свойства → действие сборки на "AndroidAsset"
-
Я создал WebView и разместил его на своем XML-экране. это выглядит так:
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MyWebView"
android:layout_width="100dp"
android:layout_height="100dp"/>
-
В моей работе я сгенерировал код следующим образом:
WebView myWebView = (WebView)findViewById(Resource.Id.MyWebView);
myWebView.loadUrl("file:///android_asset/Gif.gif");
Он работает как шарм!
Я надеюсь, что он будет помощником любого, кто хочет выполнить запуск GIF внутри приложения для Android.
Удачи.