我只是想将预定文件中的照片添加到 a 中GridView
,但我不知道该怎么做。我有一个Adapter
处理GridView
我从 这个例子中学到的东西,但我无法弄清楚如何将 mThumbIds 数组设置为文件中的图像。我想我必须使用类似的东西:ImageView.setImageUri(Uri.fromFile(new File("myPath")));
而不是setImageResource
但我可能是错的。这是我第一次做这样的事情,任何帮助都将不胜感激!
编辑:
当前代码:(有了这个,我得到了一个 NullPointer:for(File f : dir.listFiles()){
在文档中它说如果它不是目录,它会返回 null。new File(...) 中的代码与我用来创建目录的代码相同,所以我知道路径是正确的,当应用程序启动时,它会在文件夹中创建没有图片的目录,直到用户拍摄一张。我当时认为这是问题,但是当目录中有照片时它仍然会关闭。)
public static class HomeFragment extends Fragment{
public HomeFragment(){
}
View rootView;
GridView gridView;
List<Drawable> list;
File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "MyAppFolder");
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup contatiner,
Bundle savedInstanceState){
for(File f : dir.listFiles()){
Bitmap original = BitmapFactory.decodeFile(f.getAbsolutePath());
Drawable drawable = new BitmapDrawable(getResources(), original);
list.add(drawable);
}
rootView = inflater.inflate(R.layout.home_layout,
contatiner, false);
gridView = (GridView) rootView.findViewById(R.id.homeGridView);
gridView.setAdapter(new HomeAdapter(getActivity(), list));
return rootView;
}
}
public class HomeAdapter extends BaseAdapter {
private Context mContext;
private List<Drawable> mPictures;
public HomeAdapter(Context c, List<Drawable> list) {
mContext = c;
mPictures = list;
}
public int getCount() {
return mPictures.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(110, 110));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageDrawable(mPictures.get(position));
return imageView;
}
}