1

アダプターを使用してギャラリーに入れたい画像があり、キャンバスを使用して描画されます。多くのチュートリアルを見て、コードを作成しましたが、どこが間違っているのかわかりません

Gallery g;
ImageAdapter imageAdapter;

       Gallery g = (Gallery) findViewById(R.id.gBitmap);
       imageAdapter = new ImageAdapter(this);
       g.setAdapter(imageAdapter);

    //selected Bitmap from gallery
       g.setOnItemClickListener(new OnItemClickListener() {
           public void onItemClick(AdapterView<?> parent,
               View v, int position, long id) {
               applyBitmap(position);
           }
       });
    }

    public class ImageAdapter extends BaseAdapter {
       int mGalleryItemBackground;
       private Context mContext;

       private Integer[] mImageIds = {
               R.drawable.first,
               R.drawable.second,
               R.drawable.fifth,
               R.drawable.third,
               R.drawable.fourth,

       public ImageAdapter(Context c) {
           mContext = c;
       }

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

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

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

       public View getView(int position,
           View convertView, ViewGroup parent) {
            return iv;
       }
    }

    public static void Bitmap(int position) {
        BitmapFactory.Options opt = new BitmapFactory.Options();
        opt.inScaled = true;
        opt.inPurgeable = true;
            opt.inInputShareable = true;
            Bitmap brightBitmap = BitmapFactory.decodeResource(null, position, opt);
        iv.setImageBitmap(brightBitmap);


    }

mImageIds呼び出された関数を使用するには、選択したものを取得する必要がありますBitmap

4

2 に答える 2

1

これがうまくいくかどうかはわかりませんが、

ただし、コードを少し変更して、

1. applyFrame(整数位置)

このコード行は、

Bitmap brightBitmap = BitmapFactory.decodeResource(getResources(), position, opt); 

2. getView() で

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

    i.setImageResource(mImageIds[position]);
    i.setLayoutParams(new Gallery.LayoutParams(150, 100));
    i.setScaleType(ImageView.ScaleType.FIT_XY);
    i.setBackgroundResource(mGalleryItemBackground);

    return i;
}

3.setOnItemClickListener()

g.setOnItemClickListener(new OnItemClickListener() {
           public void onItemClick(AdapterView<?> parent,
               View v, int position, long id) {
               applyFrame(mImageIds[position]);
           }
       });

これを試してみて、何が起こるか教えてください...うまくいけば説明します。どのように??

于 2012-08-18T18:26:37.420 に答える
0

「 listViewの世界」のビデオを見て、adapterView用のアダプターを作成する方法を知っておく必要があります(ギャラリーはそれを拡張します)。

于 2012-08-18T19:59:17.827 に答える