Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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卡目录中图像的Gridview_Android_Gridview_Android Sdcard - Fatal编程技术网

Android SD卡目录中图像的Gridview

Android SD卡目录中图像的Gridview,android,gridview,android-sdcard,Android,Gridview,Android Sdcard,我想在sdcard目录的gridview中显示图像。我使用此代码。但当我按类型加载图像时:bitmap.getView在gridview适配器中需要整数[]数组。如何修复它 public class LoadPic extends Activity { Integer[] imageIDs = { R.drawable.user, R.drawable.user, R.drawable.user, R.drawable.user,

我想在sdcard目录的gridview中显示图像。我使用此代码。但当我按类型加载图像时:bitmap.getView在gridview适配器中需要整数[]数组。如何修复它

public class LoadPic extends Activity {

Integer[] imageIDs = {
        R.drawable.user,
        R.drawable.user,
        R.drawable.user,
        R.drawable.user,
        R.drawable.user,
        R.drawable.user,
        R.drawable.user
};

int numberOfImages=0;
Bitmap[] m;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.load_pic);


    Intent gett = getIntent();


    String _area = gett.getStringExtra("area");
    String _domain = gett.getStringExtra("domain");
    String _block = gett.getStringExtra("block");
    String _melk = gett.getStringExtra("melk");
    String _build = gett.getStringExtra("build");
    String _apar = gett.getStringExtra("apar");
    String _senfi = gett.getStringExtra("senfi");




    File dir = new File(Environment.getExternalStorageDirectory()
            + "/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi);
    File[] files = dir.listFiles();
    numberOfImages=files.length;


    for (int i=1;i<=numberOfImages;i++)
    {

        File img = new File("/sdcard/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi+"/pic"+i+".png");


        if(img.exists())
        {
            Bitmap bit = BitmapFactory.decodeFile(img.getAbsolutePath());

        }

    }




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

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent,
                                View v, int position, long id) {
            Toast.makeText(getBaseContext(),
                    "pic" + (position + 1) + " selected",
                    Toast.LENGTH_SHORT).show();
        }
    });



}



public class ImageAdapter extends BaseAdapter
{
    private Context context;

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

    //---returns the number of images---
    public int getCount() {
        return numberOfImages;
    }

    //---returns the ID of an item---
    public Object getItem(int position) {
        return position;
    }

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

    //---returns an ImageView view---
    public View getView(int position, View convertView, ViewGroup parent)
    {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(context);
            imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(7, 7, 7, 7);
        } else {
            imageView = (ImageView) convertView;
        }


        /**/
        imageView.setImageResource(imageIDs[position]);
        /**/

        return imageView;
    }
}
public类LoadPic扩展活动{
整数[]图像ID={
R.drawable.user,
R.drawable.user,
R.drawable.user,
R.drawable.user,
R.drawable.user,
R.drawable.user,
R.drawable.user
};
int numberOfImages=0;
位图[]m;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.load_pic);
Intent gett=getIntent();
字符串_area=gett.getStringExtra(“区域”);
字符串_domain=gett.getStringExtra(“域”);
字符串_block=gett.getStringExtra(“块”);
字符串_melk=gett.getStringExtra(“melk”);
String _build=gett.getStringExtra(“build”);
字符串_apar=gett.getStringExtra(“apar”);
字符串_senfi=gett.getStringExtra(“senfi”);
File dir=新文件(Environment.getExternalStorageDirectory()
+“/momayezi/”+area+“-”+domain+“-”+block+“-”+melk+“-”+build+“-”+apar+“-”+senfi);
File[]files=dir.listFiles();
numberOfImages=files.length;
对于(int i=1;i替换

public int getCount() {
        return numberOfImages;
    }


首先,正确解释要设置什么可绘制的位图

如果
Bitmap
,则这是设置位图的方式(制作位图列表,然后):

如果
可提取
则(列出可提取id)

以下是创建位图列表的方法:

ArrayList<Bitmap> bitmaps = new ArrayList<Bitmap>();


File dir = new File(Environment.getExternalStorageDirectory()
            + "/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi);
    File[] files = dir.listFiles();
    numberOfImages=files.length;


    for (int i=1;i<=numberOfImages;i++)
    {

File f = new File("/sdcard/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi+"/pic"+i+".png");
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
if(bmp!=null){
bitmaps.add(bmp);
}
}
ArrayList位图=新建ArrayList();
File dir=新文件(Environment.getExternalStorageDirectory()
+“/momayezi/”+area+“-”+domain+“-”+block+“-”+melk+“-”+build+“-”+apar+“-”+senfi);
File[]files=dir.listFiles();
numberOfImages=files.length;

对于(int i=1;i如果您希望将SD卡中的图像显示到网格视图中,请使用任何imageloader库

通用图像加载器

然后需要创建一个字符串数组或模型类,而不是整数数组。 请参考以下教程


否。我想更改此代码。这不起作用。我想从SD卡加载图像。但因为我是通过文件img加载图像的…我不知道我是否会将imageview.setImageResource(imageID)与imageview.setImageBitmap()一起重放@MahshidFallah搜索堆栈溢出,查找从存储器读取图像的代码,如果有任何错误,post itBitmap.but应用程序有错误。由于我在物理设备中运行它,当它有错误时,我不知道什么是errorimageView.setImageResource(ImageId[position]);这是可绘制的代码。位图列表在哪里?
imageView.setImageBitmap(bitmaps[position]);
imageview.setImageResource(drawables[position]);
ArrayList<Bitmap> bitmaps = new ArrayList<Bitmap>();


File dir = new File(Environment.getExternalStorageDirectory()
            + "/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi);
    File[] files = dir.listFiles();
    numberOfImages=files.length;


    for (int i=1;i<=numberOfImages;i++)
    {

File f = new File("/sdcard/momayezi/"+_area+"-"+_domain+"-"+_block+"-"+_melk+"-"+_build+"-"+_apar+"-"+_senfi+"/pic"+i+".png");
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
if(bmp!=null){
bitmaps.add(bmp);
}
}