Android 如何将int转换为drawable?
我创建了一个带有图标列表的对话框,即可绘制图标。我已经创建了一个网格视图来显示这些图标 现在我想获取所选图标并将其设置为“活动”中的图像视图 那么,如何将其转换为可绘制,以便在活动的图像视图上设置所选图标 对话框代码:Android 如何将int转换为drawable?,android,int,drawable,android-gridview,Android,Int,Drawable,Android Gridview,我创建了一个带有图标列表的对话框,即可绘制图标。我已经创建了一个网格视图来显示这些图标 现在我想获取所选图标并将其设置为“活动”中的图像视图 那么,如何将其转换为可绘制,以便在活动的图像视图上设置所选图标 对话框代码: private void showAlertDialog() { GridView gridView = new GridView(this); gridView.setGravity(Gravity.CENTER); gri
private void showAlertDialog() {
GridView gridView = new GridView(this);
gridView.setGravity(Gravity.CENTER);
gridView.setPadding(0,20,0,20);
int[] mThumbIds = {
R.drawable.roundicons05,R.drawable.roundicons08,R.drawable.roundicons02,R.drawable.roundicons03,R.drawable.roundicons04,
R.drawable.roundicons16,R.drawable.roundicons37,R.drawable.roundicons06,R.drawable.roundicons07,R.drawable.roundicons05,
R.drawable.roundicons09,R.drawable.roundicons10,R.drawable.roundicons11,R.drawable.roundicons12,R.drawable.roundicons13,
R.drawable.roundicons14,R.drawable.roundicons15,R.drawable.roundicons16,R.drawable.roundicons17,R.drawable.roundicons18,
R.drawable.roundicons19,R.drawable.roundicons20,R.drawable.roundicons22,
};
gridView.setAdapter(new ImageAdapter(CheckListActivity.this,mThumbIds));
gridView.setNumColumns(4);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// do something here
// icon.setImageDrawable(id);
imageId = position;
Drawable drawable = getResources().getDrawable(imageId);
icon.setImageDrawable(drawable);
}
});
final MaterialDialog dialog = new MaterialDialog.Builder(CheckListActivity.this)
.customView(gridView, false)
.title("Select Icon")
.negativeText("CANCEL")
.canceledOnTouchOutside(true)
.build();
dialog.show();
}
但这不会引发资源发现异常
谢谢..不要将
位置用作资源ID(它不是),而是在位置处获取mThumbIds
数组的一项。因此,您的代码应该如下所示:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// do something here
imageId = mThumbIds[position];
Drawable drawable = getResources().getDrawable(imageId);
icon.setImageDrawable(drawable);
}
public void onItemClick(AdapterView父视图、视图视图、整型位置、长id){
//在这里做点什么
imageId=mThumbIds[位置];
Drawable Drawable=getResources().getDrawable(imageId);
icon.setImageDrawable(可绘制);
}
我希望这有帮助 这条线
imageId = position;
应该是这样的
imageId = mThumbIds[position];
不推荐使用getDrawable(int)方法。
现在您可以轻松使用
icon.setImageResource(imageId);
在科特林:
ContextCompat.getDrawable(context, resourceId)
imageId=position
应该是imageId=mThumbIds[position]
您可以使用parent.getItem(posiiton)
然后将其设置为drawablegot。。谢谢……:)@伊什玛勒玛基特拉
ContextCompat.getDrawable(context, resourceId)