在Android中不显示Gif图像

时间:2014-11-09 08:59:08

标签: android animation gif

在我的Android应用程序中我需要显示gif图像,我已经引用了一些代码来显示但是它不工作不知道我错过了哪里,看看我的代码

我的班级     公共类SampleAnimgif扩展了View {

    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" />

非常欢迎建议

由于

1 个答案:

答案 0 :(得分:0)

我知道这个问题的答案很晚,但它可能对其他人有所帮助。我遇到了与用户相同的问题,我无法解决问题。经过大量的谷歌搜索,我找到了解决方案。问题是在4.0以上的Android手机中启用了硬件加速(我不确定。它可能高于3.0)。您需要做的就是在声明活动时将hardwareaccelation设置为false。

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