例如,我有一个由此得到的 ImageView:
public ImageView get_image_by_name(String name)
{
int image_id = getResources().getIdentifier(name , "drawable", getPackageName());
return (ImageView)findViewById(image_id);
}
不确定它是否有效。
我该如何将它添加到布局中?
假设这个函数被放置在某个地方Activity
,你可以试试这个:
public ImageView get_image_by_name(String name)
{
int image_id = getResources().getIdentifier(name , "drawable", getPackageName());
ImageView iv = new ImageView(this);
ViewGroup.LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
iv.setLayoutParams(lp);
iv.setImageDrawable(getResources().getDrawable(image_id));
return iv;
}
您也可以更改LayoutParams
以满足您的要求。
布局都派生自 ViewGroup,因此它们都有一个名为 addView 的函数。将 ImageView 传递给它。
不确定它是否有效
答案是你是对的,你当前的代码不起作用,因为你试图在当前布局中找到任何可绘制资源作为 imageView。将您的代码更改为返回您动态创建的 imageView :
public ImageView get_image_by_name(String name)
{
int image_id = getResources().getIdentifier(name ,
"drawable", getPackageName());
ImageView imageView=new ImageView(Your_Current_Activity.this);
imageView.setImageDrawable(image_id);
imageView.setLayoutParams(new
LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
return imageView;
}