2013-02-15 91 views
0

我正在寻找一些关于如何从手机SD卡读取图像的信息,然后将它们放在GridView中,最后能够点击并选择其中一个图像并显示它全尺寸开始。从SD卡到GridView的图像

我正在寻找易于遵循和理解的教程或示例。我搜索了,但我发现很难找到这样的教程。也许是因为我不知道正确的关键词。我遵循Android Developer网页上的GridView示例,但我正在寻找延续。

到目前为止,我已经了解到我需要使用MediaStore内容提供程序,查询和游标。

如果有人能给我更多的信息或方向,谢谢!

+1

我相信你的搜索会在这里结束:[Android - 从图库中选择多张照片](http://www.technotalkative.com/android-select-multiple-photos-from-gallery/) – 2013-02-15 10:21:45

+0

@Paresh Mayani I使用此代码,你可以告诉我如何显示其他活动中的选定的图像。 – URAndroid 2013-06-25 08:03:19

回答

0

下面是一个简单的示例,将图像视图添加到网格视图中。

@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(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 imageIDs.length; 
    } 

    //---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(5, 5, 5, 5); 
     } else { 
      imageView = (ImageView) convertView; 
     } 
     imageView.setImageResource(...); 
     return imageView; 
    } 
}  

以下是如何将图像文件放入图像视图。

解决方法1:

ImageView i = new ImageView(mContext); 

Bitmap bm = BitmapFactory.decodeFile(...); 
i.setImageBitmap(bm); 

i.setLayoutParams(new Gallery.LayoutParams(150, 100)); 
i.setScaleType(ImageView.ScaleType.FIT_XY); 
i.setBackgroundResource(...); 

溶液2:

ImageView im = new ImageView(mContext); 
im.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+id)); 
0

Here是网格视图初学者和良好的教程。在该教程中,图像被放置在可绘制文件夹中。既然你想读取存储卡中的图像,只需找到这些图像的路径,并将它们提供给gridView中的imageView。让我知道你是否需要帮助。