1

画像をロードするために使用する画像パスが 3 つまたは 4 つあるため、画像ビューに設定します。なぜ時間がかかるのですか?または、より速くする方法はありますか?一日の終わりに、高さと幅が60 dp未満のイメージビューに合わせてロードしています

Uri mainImgeUri = Uri.parse(imagePath);
InputStream imageStream;
try {
    imageStream = mActiviy.getContentResolver().openInputStream(mainImgeUri);
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inSampleSize = 8;
    Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options);
    mainImageIV.setImageBitmap(yourSelectedImage);
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

ユースケース: ユーザーが 5 つの画像を追加すると (ほとんどが携帯電話のカメラで撮影されたギャラリーから選択できるようになります)。彼は保存を押し、私のアプリはそれらへのパスを sqlite データベースに保存します。次に、ユーザーがアプリを再度開いてそれらを表示すると、アプリはデータベースにクエリを実行してすべての画像へのパスを取得し、上記のコードを x 回実行して、すべての画像ビューに目的の画像が読み込まれるようにします。

4

1 に答える 1

0

http://developer.android.com/training/displaying-bitmaps/load-bitmap.htmlをご覧ください。

出力画像の必要な寸法に基づいて正しい inSampleSize を計算する方法を説明します。また、すべてのピクセル データをメモリに読み込まずに大きなビットマップを参照する方法についても説明します。

アイデアは、大きな画像を再サンプリングし、小さな画像のみをメモリにロードして、プロセス全体をより効率的にするというものです。サンプル コードはリソースからビットマップにアクセスしていますが、これは必要に応じて簡単に変更できます。

この例で注目すべき重要な点は、inJustDecodeBounds と calculateInSampleSize です。

于 2013-02-28T10:11:56.827 に答える