私はアンドロイドのプログラミングには新しく、最近いくつかのアプリケーションを開発することを学んでいます。画像を扱うまではそれほど大きな問題はありませんでした。私は、Drawableフォルダに保存されている画像(JPEG/PNG)を表示するeBookのような単純なアプリケーションを開発しようとしています。onCreateでビットマップを読み込むとアクティビティが遅くなります
私の最初のアプローチはギャラリーウィジェットを使用することでしたが、適切なズームを実装できませんでした。だから私は今、単純なImageviewを使用して一度に単一のビットマップを表示し、タッチイベントのビットマップを変更またはズームします。これを行うために、アクティビティの起動時にビットマップ配列にすべてのビットマップをデコードして、いつでも使用できるようにしなければなりませんでした。
私のアプリケーションはギャラクシータブで正常に起動しますが、それ以外のすべての電話は起動に約3〜5秒かかります。私は、開始時にビットマップをロードする簡単な方法があるかどうかを知りたかっただけです。私の質問が既に尋ねられたら私を許してください、しかし私は多くのstackoverflowを検索し、私の質問に特定の答えを見つけることができませんでした。ここに私のコードです。誰もが助けることを望む。
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クラスです。私はこの多くの情報が十分であることを望みます。