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 に答える