如何在GridView中增加图象? [英] how to add images on gridview?

查看:132
本文介绍了如何在GridView中增加图象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在此以下的GridView image.png 图像从拍摄绘制 folder.Now我想从图像照相馆或捕捉的相机图像动态地添加在这个grid.How办?

在任何例如code?

HelloGridView类:

 包com.example.HelloGridView;

进口android.app.Activity;
进口android.os.Bundle;

公共类HelloGridView延伸活动{
/ **第一次创建活动时调用。 * /
@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);

    GridView控件的GridView =(GridView控件)findViewById(R.id.gridview);
    gridview.setAdapter(新ImageAdapter(本));

    gridview.setOnItemClickListener(新OnItemClickListener(){
        公共无效onItemClick(适配器视图<>母公司,视图V,INT位置,长的id){
            Toast.makeText(HelloGridView.this,+位置,Toast.LENGTH_SHORT).show();
        }
    });
    }
 

ImageAdapter类:

 包com.example.HelloGridView;

公共类ImageAdapter扩展了BaseAdapter {
私人语境mContext;

公共ImageAdapter(上下文C){
mContext = C;
}

公众诠释getCount将(){
返回mThumbIds.length;
}

公共对象的getItem(INT位置){
返回null;
}

众长getItemId(INT位置){
返回0;
}

//创建由适配器引用的每个项目的新的ImageView
公共查看getView(INT位置,查看convertView,ViewGroup中父){
ImageView的ImageView的;
如果(convertView == NULL){//如果它不回收,初始化一些属性
    ImageView的=新ImageView的(mContext);
    imageView.setLayoutParams(新GridView.LayoutParams(85,85));
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setPadding(8,8,8,8);
} 其他 {
    ImageView的=(ImageView的)convertView;
}

imageView.setImageResource(mThumbIds [位置]);
返回ImageView的;
}

//引用到我们的形象
私人整数[] mThumbIds = {
R.drawable.sample_2,R.drawable.sample_3,
R.drawable.sample_4,R.drawable.sample_5,
R.drawable.sample_6,R.drawable.sample_7,
R.drawable.sample_0,R.drawable.sample_1,
R.drawable.sample_2,R.drawable.sample_3,
R.drawable.sample_4,R.drawable.sample_5,
R.drawable.sample_6,R.drawable.sample_7,
R.drawable.sample_0,R.drawable.sample_1,
R.drawable.sample_2,R.drawable.sample_3,
R.drawable.sample_4,R.drawable.sample_5,
R.drawable.sample_6,R.drawable.sample_7
};
 

解决方案

把图像文件夹[图片]在SD卡

 公共类ChannelImageAdapter扩展了BaseAdapter {

    INT mGalleryItemBackground;
    私人语境mContext;
    文件[]的图像;
    文件[]文件;
    公共ChannelImageAdapter(上下文C中,int folderID){
        mContext = C;

        文件DIR =新的文件(Environment.getExternalStorageDirectory()+/图片);
        文件= dir.listFiles();
        照片=文件[folderID] .listFiles();

    }
    公众诠释getCount将(){
        返回images.length;
    }
    公共对象的getItem(INT位置){
        返回图片[位置] .getAbsolutePath();
    }
    众长getItemId(INT位置){
        返回的位置;
    }
    公共字符串getAlbumName(INT folderID){
        返回文件[folderID] .getName();
    }
    公共查看getView(INT位置,查看convertView,ViewGroup中父){

        ImageView的ImageView的;
        //位图BM = BitmapFactory
        // .DE codeFILE(图片[位置] .getAbsolutePath());
        如果(convertView == NULL){
            ImageView的=新ImageView的(mContext);
            imageView.setLayoutParams(新GridView.LayoutParams(100,100));
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            imageView.setPadding(5,10,5,10);
        } 其他 {
            ImageView的=(ImageView的)convertView;
        }
        imageView.setImageBitmap(Bitmap.de code(图片[位置] .getAbsoluteFile()));
        返回ImageView的;

    }


}
 

In this following gridview image.png images are taken from the drawable folder.Now I want the images from the photo gallery or captured camera image add dynamically in this grid.How to do?

Any example code?

HelloGridView class:

package com.example.HelloGridView; 

import android.app.Activity; 
import android.os.Bundle; 

public class HelloGridView extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new ImageAdapter(this)); 

    gridview.setOnItemClickListener(new OnItemClickListener() { 
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
            Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show(); 
        } 
    }); 
    } 

ImageAdapter class:

package com.example.HelloGridView; 

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

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

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

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

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

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
ImageView imageView; 
if (convertView == null) {  // if it's not recycled, initialize some attributes 
    imageView = new ImageView(mContext); 
    imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    imageView.setPadding(8, 8, 8, 8); 
} else { 
    imageView = (ImageView) convertView; 
} 

imageView.setImageResource(mThumbIds[position]); 
return imageView; 
} 

// references to our images 
private Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5, 
R.drawable.sample_6, R.drawable.sample_7, 
R.drawable.sample_0, R.drawable.sample_1, 
R.drawable.sample_2, R.drawable.sample_3, 
R.drawable.sample_4, R.drawable.sample_5, 
R.drawable.sample_6, R.drawable.sample_7, 
R.drawable.sample_0, R.drawable.sample_1, 
R.drawable.sample_2, R.drawable.sample_3, 
R.drawable.sample_4, R.drawable.sample_5, 
R.drawable.sample_6, R.drawable.sample_7 
}; 

解决方案

Put images in the folder[images ] in SD card

public class ChannelImageAdapter extends BaseAdapter {

    int mGalleryItemBackground;
    private Context mContext;
    File[] images;
    File[] files;
    public ChannelImageAdapter(Context c, int folderID) {
        mContext = c;

        File dir = new File(Environment.getExternalStorageDirectory() + "/images");
        files = dir.listFiles();
        images = files[folderID].listFiles();

    }
    public int getCount() {
        return images.length;
    }
    public Object getItem(int position) {
        return images[position].getAbsolutePath();
    }
    public long getItemId(int position) {
        return position;
    }
    public String getAlbumName(int folderID) {
        return files[folderID].getName();
    }
    public View getView(int position, View convertView, ViewGroup parent) {

        ImageView imageView;
        //Bitmap bm = BitmapFactory
        //      .decodeFile(images[position].getAbsolutePath());
        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
            imageView.setScaleType(ImageView.ScaleType.FIT_XY);
            imageView.setPadding(5, 10, 5, 10);
        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageBitmap(Bitmap.decode(images[position].getAbsoluteFile()));
        return imageView;

    }


}

这篇关于如何在GridView中增加图象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆