Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从SD卡获取自定义对话框的图像 从SD卡获取自定义对话框的图像_Android - Fatal编程技术网

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

 }