1

У меня есть следующий PNG: enter image description hereКак установить ImageView для отображения другой позиции в PNG? (Android спрайтов, так анимации)

Каждая иконка 100x100 пикс. Всего 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.

Спасибо!

+0

Я просто использую несколько изображений, не помещая их в один файл –

ответ

1

Наконец я получил его на работу, выполнив следующие действия: (Хотя я признаю его немного хромает ...)

  1. Я разделил выше PNG на 8 (100х100) в формате PNG каждый с помощью онлайн-инструмента - >PNG Splitter
  2. Я создал GIF с помощью онлайн-инструмент - GIF Maker ->http://gifmaker.me/
  3. Я поместил сохраненное GIF под "активов" папку и изменила Properties-> строить действие на "AndroidAsset"
  4. Я создал WebView и разместил его внутри моего XML-экрана. это выглядит следующим образом:

      <WebView 
          xmlns:android="http://schemas.android.com/apk/res/android" 
          android:id="@+id/MyWebView" 
          android:layout_width="100dp" 
          android:layout_height="100dp"/> 
    
  5. В моей деятельности я сгенерировал код следующим образом:

    WebView myWebView = (WebView)findViewById(Resource.Id.MyWebView); 
    myWebView.loadUrl("file:///android_asset/Gif.gif"); 
    

Он работает как шарм!

Надеюсь, что он будет помощником любого, кто хочет выполнить запуск приложения для андроида GIF.

Удачи.