我有一个网格视图,它将所有图像从一个特定的文件夹加载到它自己。我试图获得它,以便当用户单击网格视图内的单个图像时,它会在图像视图中设置其自身的放大版本。我认为我需要尝试做的事情是创建网格视图并将图像加载到该网格视图中时,我需要将一个数组附加到在gridview中创建的imageview中创建的imageview以及它在SD卡中的位置。所以当一个图像加载时,保存图像的位置并将其附加到gridview中的imageview。到目前为止,我已将从SD卡加载的最后一张照片加载到放大的图像视图中。从SD卡读取网格视图库
Main.java
public class Main extends Activity{
ImageView photoHolder;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery);
photoHolder = (ImageView) findViewById(R.id.photoHolderView);
photoHolder.setVisibility(View.GONE);
GridView gridView = (GridView) findViewById(R.id.grid_view);
gridView.setVisibility(View.VISIBLE);
gridView.setAdapter(new ImageAdapter(this));
gridView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> a, View view, int position, long id) {
photoHolder.setVisibility(View.VISIBLE);
photoHolder.setImageURI(ImageAdapter.uri);
}
});
}
}
ImageAdapter.java
public class ImageAdapter extends BaseAdapter {
public static Uri uri;
private Context mContext;
File root = new File(Environment.getExternalStorageDirectory()
+ File.separator + "Custom" + File.separator);
private File[] fileName = root.listFiles();
int count = fileName.length;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return fileName.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
uri = Uri.fromFile(fileName[position]);
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some
// attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageURI(uri);
return imageView;
}
}
在一个侧面说明它崩溃了不少,由于内存泄漏,任何想法,我会怎样创建一个“样品/缩略图”大小的图像,而从SD卡加载它?
非常感谢您的帮助。得到它所有的工作和排序:) – user2756111