【问题标题】:Android Gallery and AdaptersAndroid 图库和适配器
【发布时间】:2012-08-18 18:16:24
【问题描述】:

我有一些图像,我希望它们在画廊中使用适配器来选择每个图像,它将使用画布绘制,我看了很多教程并编写了我的代码,现在我不知道哪里错了正在制作

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

【问题讨论】:

    标签: android xml button gallery


    【解决方案1】:

    我不知道这是否适合你,

    但是对你的代码做一些改动,

    1. applyFrame(int position)

    这行代码应该是,

    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]);
               }
           });
    

    试试这个,让我知道会发生什么......如果它有效,那么我会向你解释。怎么样??

    【讨论】:

    • 是的,我做到了,我得到了一个错误“mImageIds cannot be resolved to a variable”
    • 你可以在onCreate()之前发布活动代码或在链接中发布活动代码...
    • 欢迎好友..!快乐编码..! :-)
    【解决方案2】:

    您应该观看“the world of listView”视频并了解如何为 adapterView 创建适配器(图库扩展了它)。

    【讨论】:

      猜你喜欢
      • 2019-04-26
      • 1970-01-01
      • 2016-11-11
      • 2017-10-27
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多