如何在GridView中增加图象? [英] how to add images on gridview?
本文介绍了如何在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屋!
查看全文