2014-11-09 2 views
0

В моем андроиде приложении мне нужно, чтобы показать рисунок, я упомянул код для отображения, но его не работает не знает, где я пропустил, проверить это мой кодGif изображение не отображается в Android

Моего класса общественного класса SampleAnimgif расширяет вид {

private Movie mMovie; 
    private long mMovieStart; 

    public SampleAnimgif(Context context) { 
     super(context); 
     setFocusable(true); 

     java.io.InputStream is; 
     is = context.getResources().openRawResource(R.drawable.siren); 
     mMovie = Movie.decodeStream(is); 
    } 

    public SampleAnimgif(Context context, AttributeSet attrSet) { 
     super(context, attrSet); 
     setFocusable(true); 

     java.io.InputStream is; 
     is = context.getResources().openRawResource(R.drawable.siren); 
     mMovie = Movie.decodeStream(is); 
    } 

    public SampleAnimgif(Context context, AttributeSet attrSet, int defStyle) { 
     super(context, attrSet, defStyle); 
     setFocusable(true); 

     java.io.InputStream is; 
     is = context.getResources().openRawResource(R.drawable.siren); 
     mMovie = Movie.decodeStream(is); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     canvas.drawColor(0x00000000); 

     Paint p = new Paint(); 
     p.setAntiAlias(true); 

     long now = android.os.SystemClock.uptimeMillis(); 
     if (mMovieStart == 0) { // first time 
      mMovieStart = now; 
     } 
     if (mMovie != null) { 
      int dur = mMovie.duration(); 
      if (dur == 0) { 
       dur = 1000; 
      } 
      int relTime = (int) ((now - mMovieStart) % dur); 
      mMovie.setTime(relTime); 
      mMovie.draw(canvas, getWidth()/2 - mMovie.width()/2, 
        getHeight()/2 - mMovie.height()/2); 
      invalidate(); 
     } 
    } 
} 

Мой XML класс

<com.example.activities.SampleAnimgif 
      android:id="@+id/gif_view" 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" /> 

Предложение приветствуется

спасибо

ответ

0

Я знаю, что это поздний ответ на этот вопрос, но он может помочь другим. У меня была такая же проблема, как у пользователей, и я не мог ее решить. После многих проблем в Google, я нашел решение. Проблема заключается в том, что аппаратное ускорение включено в мобильном устройстве для Android выше 4.0 (я не уверен, он может быть выше 3.0). Все, что вам нужно сделать, это сделать hardwareaccelation ложным при объявлении активности.

<activity 
     android:screenOrientation="portrait" 
     android:hardwareAccelerated="false">