我使用gridView
来获取文件列表。但它无法使用filelist.get(position)
我希望使用
获取Thumbnails
MediaStore.Images.Thumbnails.getThumbnail(getActivity().getContentResolver(), origId, Images.Thumbnails.MICRO_KIND, null);
但这里的origId
图像是什么?
这是path
还是name
?
----------------------------------------------- --edit ---------------------------------------
完整代码如下:
我希望在getView
获得缩略图。
viewTag
是另一个类,它存储textview
。
所以viewTag.mFilename.setText(filename);
等于Textview.setText
。
public class LocalFileListAdapter extends BaseAdapter {
private LayoutInflater mInflater ;
private ArrayList<FileNode> mFileList ;
private static final String TAG = "MJPEG Player" ;
private Context mContext;
public LocalFileListAdapter(LayoutInflater inflater, ArrayList<FileNode> fileList) {
mInflater = inflater ;
mFileList = fileList ;
}
public void GridAdapter(Context ctx) {
// TODO Auto-generated method stub
mContext = ctx;
}
@Override
public int getCount() {
return mFileList == null ? 0 : mFileList.size() ;
}
@Override
public Object getItem(int position) {
return mFileList == null ? null : mFileList.get(position) ;
}
@Override
public long getItemId(int position) {
return position ;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewTag viewTag ;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.filelist_row, null) ;
TextView fileListName = (TextView) convertView.findViewById(R.id.fileListName);
fileListName.setSelected(true);
viewTag = new ViewTag(mContext , (ImageView) convertView.findViewById(R.id.fileListThumbnail),
(ImageView) convertView.findViewById(R.id.select) ,
mFileList.get(position) , fileListName ,
(TextView) convertView.findViewById(R.id.fileListSize) ,
(ImageView) convertView.findViewById(R.id.video_layout) ,
(TextView) convertView.findViewById(R.id.fileListTime));
convertView.setTag(viewTag) ;
} else {
viewTag = (ViewTag) convertView.getTag() ;
}
viewTag.mFileNode = mFileList.get(position) ;
String filename = viewTag.mFileNode.mName.substring(viewTag.mFileNode.mName.lastIndexOf("/") + 1) ;
viewTag.mFilename.setText(filename);
MediaStore.Images.Thumbnails.getThumbnail(getActivity().getContentResolver(), Long.parseLong(mFileList.get(position)), Images.Thumbnails.MICRO_KIND, null);
return convertView ;
}
}
如何获取图片ID?
答案 0 :(得分:4)
您使用以下方法:
public static Bitmap getThumbnail(ContentResolver cr,long origId,int kind,BitmapFactory.Options options)
参数:
cr - &gt; ContentResolver用于将查询分派给MediaProvider。
origId - &gt;与感兴趣的缩略图相关联的原始图像ID。
种 - &gt;要获取的缩略图类型。应该是MINI_KIND或MICRO_KIND。
选项 - &gt;这仅在解码位图时用于MINI_KIND 返回 一个Bitmap实例。如果与origId关联的原始图像不存在或内存不足,则可能为null。
如果您有Image Uri,那么您将获得以下ID:
imageUri.getLastPathSegment()
或
String wholeID = DocumentsContract.getDocumentId(imageUri);
String id = wholeID.split(":")[1];
Long origId = Long.parseLong(id);
现在你需要传递给getThumbnail()
答案 1 :(得分:1)
这只是每张图片的ID。
来自文档:
缩略图的原始图像 键入:INTEGER(图像表中的ID)
http://developer.android.com/reference/android/provider/MediaStore.Images.Thumbnails.html#IMAGE_ID
所以,它既不是路径,也不是名称。它是MediaStore中每个图像的内部生成的ID。它通常是图像的Uri。