Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 如何在gridview上添加图像?_Android_Gridview_Imageview - Fatal编程技术网

Android 如何在gridview上添加图像?

Android 如何在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 { /**

在下面的gridview
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;

    }
}