我有以下代码:
@Override
public void surfaceCreated(SurfaceHolder holder) {
Log.v(StartupActivity.TAG, "SURFACE CREATED");
bitmaps = new HashMap<>();
bitmaps.put("logo", BitmapFactory.decodeResource(getContext().getResources(), R.drawable.logo));
displayLoadingBitmap();
bitmaps.remove("logo");
System.gc();
....
}
表面立即创建,但我的位图显得有些晚了。有没有办法在例如StartupActivity中预加载位图并将其发送到当前的Activity以显示它?
答案 0 :(得分:2)
是的,您可以在开始活动中预加载该位图并将其传递给目标活动。
为了发送该位图,由于位图实现Parceable
,它们可以被序列化并传递给另一个活动。
<强> StartUpActivity:强>
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("image", bitmap);
<强> TargetActivity:强>
Intent intent = getIntent();
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("image");
或者,建议您使用Picasso库来处理缓存和获取图像所需的所有内容。