1

それを行う方法を検索した後、失敗のためにこの質問をしました。

ポイントは、http サーバーから取得したいくつかの写真をギャラリーに表示しようとしているということです。アクティビティを初めて開いたときに、画像が特定のフォルダー、ローカル キャッシュにない場合、デフォルトの画像を表示し、AsyncTask によって画像のダウンロードを開始します。私が試しているのは、写真がダウンロードされてフォルダーに保存されるとすぐに、アクティビティでギャラリーを更新/更新して写真を表示することです。ギャラリーを左右にずらすと、ギャラリーが更新されたときに画像が表示されますが、ギャラリーがずれないようにしてください。

また、ベース アダプターは常に画像への正しい参照を使用していることに注意してください。ファイルがフォルダーに存在しない場合は、既定の画像が選択されます。

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView i = new ImageView(mContext);
    i.setImageBitmap(getPicturePath(position + 1));
    i.setLayoutParams(new Gallery.LayoutParams(wHeight / 3, wHeight / 4));
    i.setScaleType(ImageView.ScaleType.FIT_XY);
    i.setBackgroundResource(mGalleryItemBackground);

    return i;
}

private Bitmap getPicturePath(int picture) {
    String picturePath = Environment.getExternalStorageDirectory()
            .getAbsolutePath()
            + "/pictures/" + picture
            + ".jpg";
    File f = new File(picturePath);
    if (f.exists())
        return BitmapFactory.decodeFile(picturePath);
    else
        return BitmapFactory.decodeResource(mContext.getResources(),
                R.drawable.no_image);
}

ギャラリーで invalidate() を試み、アダプター baseadapter で notifyDataSetChanged() も試みましたが、機能せず、画面上の写真が変化しません。

これを解決する方法はありますか?

どうもありがとう。

4

0 に答える 0