3

例如,我有一个由此得到的 ImageView:

public ImageView get_image_by_name(String name)
{
    int image_id = getResources().getIdentifier(name , "drawable", getPackageName());
    return (ImageView)findViewById(image_id);
}

不确定它是否有效。

我该如何将它添加到布局中?

4

3 回答 3

1

假设这个函数被放置在某个地方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以满足您的要求。

于 2013-03-05T18:26:59.513 回答
0

布局都派生自 ViewGroup,因此它们都有一个名为 addView 的函数。将 ImageView 传递给它。

于 2013-03-05T18:22:14.187 回答
0

不确定它是否有效

答案是你是对的,你当前的代码不起作用,因为你试图在当前布局中找到任何可绘制资源作为 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;
}
于 2013-03-05T18:27:22.010 回答