Android 从SD卡获取自定义对话框的图像 从SD卡获取自定义对话框的图像
我正在尝试做的事情:我正在尝试学习使用Android 从SD卡获取自定义对话框的图像 从SD卡获取自定义对话框的图像,android,Android,我正在尝试做的事情:我正在尝试学习使用对话框,单击图像视图的我想显示一个自定义对话框,其中图像存储在SD卡中。然后在选择任何一个图像时,我想设置图像视图的图像 我所做的工作::我已经实现了可绘制图像的上述规格 dataacceptivity.java public class DataAcceptActivity extends Activity { InputStream is; EditText name; ImageView imageView;
对话框
,单击图像视图
的我想显示一个自定义对话框,其中图像存储在SD卡
中。然后在选择任何一个图像时
,我想设置图像视图的图像
我所做的工作::我已经实现了可绘制图像的上述规格
dataacceptivity.java
public class DataAcceptActivity extends Activity {
InputStream is;
EditText name;
ImageView imageView;
int[] image_array={R.drawable.index,R.drawable.image1,R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image8,R.drawable.image9,R.drawable.image10};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView1);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
showImages();
}
});
}
protected void showImages() {
// TODO Auto-generated method stub
final Dialog dlg=new Dialog(DataAcceptActivity.this);
dlg.setContentView(R.layout.grid_view);
GridView GV=(GridView) dlg.findViewById(R.id.gridView_id);
GV.setAdapter(new ImageAdapter(DataAcceptActivity.this));
GV.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
imageView.setImageResource(image_array[arg2]);
dlg.dismiss();
}
});
dlg.show();
}
class ImageAdapter extends BaseAdapter{
Context cxt;
public ImageAdapter(DataAcceptActivity dataAcceptActivity) {
// TODO Auto-generated constructor stub
this.cxt=dataAcceptActivity;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return image_array.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageView ;
if(convertView==null){
imageView=new ImageView(cxt);
imageView.setLayoutParams(new GridView.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(15, 15, 15, 15);
}else{
imageView=(ImageView) convertView;
}
imageView.setImageResource(image_array[position]);
return imageView;
}
}
}
公共类数据可接受性扩展活动{
输入流为;
编辑文本名称;
图像视图图像视图;
int[]image_数组={R.drawable.index,R.drawable.image1,R.drawable.image5,R.drawable.image6,R.drawable.image7,R.drawable.image8,R.drawable.image9,R.drawable.image10};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(imageView)findViewById(R.id.imageView1);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
showImages();
}
});
}
受保护的void showImages(){
//TODO自动生成的方法存根
最终对话框dlg=新对话框(DataAcceptivity.this);
dlg.setContentView(R.layout.grid_视图);
GridView GV=(GridView)dlg.findviewbyd(R.id.GridView\u id);
GV.setAdapter(新的ImageAdapter(dataAcceptivity.this));
GV.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
setImageResource(image_数组[arg2]);
dlg.discouse();
}
});
dlg.show();
}
类ImageAdapter扩展BaseAdapter{
上下文cxt;
公共图像适配器(DataAcceptivity DataAcceptivity){
//TODO自动生成的构造函数存根
this.cxt=数据可接受性;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回图像_array.length;
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
图像视图图像视图;
if(convertView==null){
imageView=新的imageView(cxt);
setLayoutParams(新的GridView.LayoutParams(LayoutParams.WRAP_内容,LayoutParams.WRAP_内容));
imageView.setScaleType(imageView.ScaleType.CENTER\U裁剪);
设置填充(15,15,15,15);
}否则{
imageView=(imageView)convertView;
}
setImageResource(图像数组[位置]);
返回图像视图;
}
}
}
如何修改代码以实现我的目标
谢谢
这是保存从图像路径创建的位图的Arraylist
这是文件夹中的图像列表
file imageList[]=file.listFiles();
此代码从路径获取图像并存储在位图arraylist中。
对于(int i=0;iThanks!这很有帮助……我还参考了…………这是一个很好的参考
ArrayList<Bitmap> bitmaps= new ArrayList<Bitmap>();
File file = new File(Environment.getExternalStoragePath()+"/Stampii/");
file imageList[] = file.listFiles();
This code take image from path and store in bitmap arraylist.
for(int i=0;i<imageList.length;i++)
{
Log.e("Image: "+i+": path", imageList[i].getAbsolutePath());
Bitmap b = BitmapFactory.decodeFile(imageList[i].getAbsolutePath());
bitmaps.add(b);
}