在我的应用程序中,我正在显示一些gif图像,这些图像在仿真器中可以正常运行,但是当我在智能手机中安装apk文件时,该应用程序可以正常运行,但是gif图像没有显示,任何解释为何?
这是我的gif显示视图代码
import android.content.Context;
import java.io.InputStream;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Movie;
import android.os.SystemClock;
import android.view.View;
public class GifWebView extends View {
private Movie mMovie;
InputStream mStream;
long mMoviestart;
public GifWebView(Context context, InputStream stream) {
super(context);
mStream = stream;
mMovie = Movie.decodeStream(mStream);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT);
super.onDraw(canvas);
final long now = SystemClock.uptimeMillis();
if (mMoviestart == 0)
{
mMoviestart = now;
}
int gif_image_duration = mMovie.duration();
if(gif_image_duration==0)
{
gif_image_duration = 1;
}
final int relTime = (int) ((now - mMoviestart) % gif_image_duration);
mMovie.setTime(relTime);
mMovie.draw(canvas, 10, 10);
this.invalidate();
}
}
在我的活动中,我打电话给
GifWebView gif_view;// as global var
在我的创建方法中
gif_linear_layout = (LinearLayout)findViewById(R.id.gif_linear_layout);
InputStream stream = null;
try {
stream = getAssets().open(gif_name);
//stream = getAssets().open("gif_images").;
}
catch (IOException e)
{
e.printStackTrace();
}
gif_view = new GifWebView(this, stream);
gif_linear_layout.addView(gif_view);
这是看起来像第1部分:在模拟器上第2部分:在我的智能电话上
我当时面临着同样的问题。如果您确信自己的代码没问题,那么只需添加android:hardwareAccelerated="false"
此活动的清单即可。希望它能解决您的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句