Android 如何在gridview上添加图像?
在下面的gridviewAndroid 如何在gridview上添加图像?,android,gridview,imageview,Android,Gridview,Imageview,在下面的gridviewimage.png中,图像是从drawable文件夹中获取的。现在,我希望将照片库中的图像或捕获的相机图像动态添加到此网格中。如何操作 有没有示例代码 HelloGridView类: package com.example.HelloGridView; import android.app.Activity; import android.os.Bundle; public class HelloGridView extends Activity { /**
image.png
中,图像是从drawable
文件夹中获取的。现在,我希望将照片库中的图像或捕获的相机图像动态添加到此网格中。如何操作
有没有示例代码
HelloGridView类:
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();
}
});
}
将图像放入SD卡中的文件夹[图像]
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;
}
}
将图像放入SD卡中的文件夹[图像]
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;
}
}
你最好检查这个:你最好检查这个:请尝试解释这个代码是如何工作的,为什么工作的,这样所有用户都可以从中学习。请尝试解释这个代码是如何工作的,为什么工作的,这样所有用户都可以从中学习。
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;
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;
}
}