您好我正在尝试将图像加载到自定义类中,该类当前使用内部资源图像的 int ID,但我希望也可以选择使用画廊或照片图像。
这是当前使用内部资源图像创建视图的代码。
public TouchExampleView(Context context, AttributeSet attrs, int defStyle, int pic) {
super(context, attrs, defStyle);
Log.i(TAG, "pic before: "+pic);
if (pic ==0) pic = getResources().getIdentifier("ic_launcher" , "drawable", "com.example.testimage");
Log.i(TAG, "pic afgter: "+pic);
//mIcon = context.getResources().getDrawable(R.drawable.testpic);
mIcon = context.getResources().getDrawable(pic);
mIcon.setBounds(0, 0, mIcon.getIntrinsicWidth(), mIcon.getIntrinsicHeight());
mDetector = VersionedGestureDetector.newInstance(context, new GestureCallback());
}
您可以在上面看到代码使用“pic”来允许传递内部资源 ID。但是我想使用从 mediastore 带来的 ID,如下所示:
final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
final String imageOrderBy = MediaStore.Images.Media._ID+" DESC";
Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, null, null, imageOrderBy);
if(imageCursor.moveToFirst()){
int id = imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID));
TouchExampleView view = new TouchExampleView(this, null, 0, id);
}
不幸的是它不工作。