gpt4 book ai didi

java - 在 onCreate 中加载位图会使 Activity 启动缓慢

转载 作者:行者123 更新时间:2023-11-29 06:11:30 25 4
gpt4 key购买 nike

我是 android 编程的新手,最近一直在学习开发一些应用程序。在我遇到处理图像之前,这并不是什么大问题。我正在尝试开发一个更像电子书的简单应用程序,它显示存储在可绘制文件夹中的图片 (JPEG/PNG)。

我的第一个方法是使用 Gallery 小部件,但我无法用它实现适当的缩放。所以我现在使用一个简单的 Imageview 一次显示一个位图,并在触摸事件时更改或缩放位图。为此,我必须在 Activity 启动期间将所有位图解码为位图数组,以便我可以随时使用它们。

我的应用程序在我的 Galaxy Tab 上启动正常,但除此之外的所有手机都需要大约 3-5 秒才能启动。我只是想知道是否有一种在启动期间加载位图的简单方法。如果我的问题已经被问到,请原谅我,但我搜索了很多计算器,但找不到我的问题的具体答案。这是我的代码。希望有人能提供帮助。

    package ....

imports ....

public class ImageViewFlipper extends Activity {

private ViewFlipper viewFlipper;
private Bitmap[] bMap= new Bitmap[15];
private TextView currentpage;
private ImageViewZoom iv;
private imagenum=3;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);
bMap[0] =BitmapFactory.decodeResource(getResources(), R.drawable.page);
bMap[1] =BitmapFactory.decodeResource(getResources(), R.drawable.page1);
bMap[2] =BitmapFactory.decodeResource(getResources(), R.drawable.page10);
bMap[3] =BitmapFactory.decodeResource(getResources(), R.drawable.page11);
bMap[4] =BitmapFactory.decodeResource(getResources(), R.drawable.page12);
bMap[5] =BitmapFactory.decodeResource(getResources(), R.drawable.page13);
bMap[6] =BitmapFactory.decodeResource(getResources(), R.drawable.page14);
bMap[7] =BitmapFactory.decodeResource(getResources(), R.drawable.page2);
bMap[8] =BitmapFactory.decodeResource(getResources(), R.drawable.page3);
bMap[9] =BitmapFactory.decodeResource(getResources(), R.drawable.page4);
bMap[10] =BitmapFactory.decodeResource(getResources(), R.drawable.page5);
bMap[11] =BitmapFactory.decodeResource(getResources(), R.drawable.page6);
bMap[12] =BitmapFactory.decodeResource(getResources(), R.drawable.page7);
bMap[13] =BitmapFactory.decodeResource(getResources(), R.drawable.page8);
bMap[14] =BitmapFactory.decodeResource(getResources(), R.drawable.page9);

currentpage=(TextView)findViewById(R.id.textview);
iv = (ImageViewZoom) findViewById(R.id.zero);
iv.setImageBitmapReset( bMap[imagenum], 0, true );
viewFlipper = (ViewFlipper) findViewById(R.id.flipper);
......

imagenum的值根据onFling方法变化,ImageViewZoom是自定义的ImageView类。我希望这些信息足够了。

最佳答案

我建议将所有位图加载到 AsyncTask 中你在 onCreate 里面开始。设计您的 Activity 以在加载所有图像之前显示一些合理的内容。 AsyncTask 可以加载所有图像并在 onPostExecute 中传送它们,也可以在使用 onProgressUpdate 加载时传送每个图像。

关于java - 在 onCreate 中加载位图会使 Activity 启动缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com