0

以下を使用して画像ギャラリーをコード作成していますが、SDカードではなくWebからの画像を使用したいと思います。これを行う方法はありますか?現在、コードには画像の整数値が必要です。または、最初に画像をSDにダウンロードする必要がありますか?

    public class viewimages extends Activity {

private Gallery gallery;
private ImageView imgView;

private Integer[] Imgid = {
        R.drawable.a_1, R.drawable.a_2, R.drawable.a_3, R.drawable.a_4
};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewimages);

    imgView = (ImageView)findViewById(R.id.ImageView01);    
    imgView.setImageResource(Imgid[0]);

     gallery = (Gallery) findViewById(R.id.examplegallery);
     gallery.setAdapter(new AddImgAdp(this));

     gallery.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View v, int position, long id) {
            imgView.setImageResource(Imgid[position]); 
        }
    });


}

public class AddImgAdp extends BaseAdapter {
    int GalItemBg;
    private Context cont;

    public AddImgAdp(Context c) {
        cont = c;
        TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
        GalItemBg = typArray.getResourceId(R.styleable.GalleryTheme_android_galleryItemBackground, 0);
        typArray.recycle();
    }

    public int getCount() {
        return Imgid.length;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imgView = new ImageView(cont);

        imgView.setImageResource(Imgid[position]);
        imgView.setLayoutParams(new Gallery.LayoutParams(80, 70));
        imgView.setScaleType(ImageView.ScaleType.FIT_XY);
        imgView.setBackgroundResource(GalItemBg);

        return imgView;
    }
}

   }
4

1 に答える 1

2

あなたはこのようなことをすることができます:

URL url = new URL("http://www.website.com/image.jpg");
Bimtap bmp = BitmapFactory.decodeStream(url.openConnection()
                    .getInputStream());

次に、「setImageResource」を実行している場所を「setImageBitmap」に変更し、ダウンロードしてロードした後、「bmp」オブジェクトを指定する必要があります。

[編集]

Androidマニフェストにインターネット権限があることを確認することも重要です。

<uses-permission android:name="android.permission.INTERNET" />

[コメントの質問のために編集]

複数の画像に対してこれを実行する必要があり、画像がid_numberに基づいていない場合(基本的に、画像が0001.jpg、0002.jpgなどでない場合)、名前を保持する文字列ArrayListを作成します。すべてのアイテムの、そしてそれを繰り返します。例えば、

List<String> imageNames = new ArrayList<String>();
imageNames.add("image.jpg");
imageNames.add("thisPhoto.jpg");
//etc. until you've added all images

for (int i = 0; i < imageNames.size(); i++){
    URL url = new URL("http://www.website.com/" + imageNames.get(i));
    Bimtap bmp = BitmapFactory.decodeStream(url.openConnection()
                    .getInputStream());
}

お役に立てば幸い

于 2012-08-02T13:27:35.763 に答える