Java 如何基于动态可绘制名称从PNG设置图像

Java 如何基于动态可绘制名称从PNG设置图像,java,android,Java,Android,如何基于动态可绘制名称从PNG设置图像 我使用下面的代码来获取错误 我有PNG: R.drawable.model_1.png R.drawable.model_2.png ... and etc 代码 try { String imageName = "model_" + uv.categoryID; int id = context.getResources().getIdentifier(imageName, "drawable", context.getPackageN

如何基于动态可绘制名称从PNG设置图像

我使用下面的代码来获取错误

我有PNG:

R.drawable.model_1.png
R.drawable.model_2.png
... and etc
代码

try
{
    String imageName = "model_" + uv.categoryID;
    int id = context.getResources().getIdentifier(imageName, "drawable", context.getPackageName());
    imageView.setImageResource(id);
}
catch(Exception ex)
{
    Log.e(TAG, ex);
}
错误

尝试调用虚拟方法“void” 空对象上的android.widget.ImageView.setImageResource(int)“” 参考文献


您似乎忘记了绑定
ImageView

imageView = (ImageView) findViewById(R.id.image_view_id);
try
 {
    ImageView imageView = (ImageView) findViewById(R.id.Yourimageview);
    String imageName = "model_" + uv.categoryID;
    int id = context.getResources().getIdentifier(imageName, "drawable", context.getPackageName());
    imageView.setImageResource(id);
 }
 catch(Exception ex)
 {
     Log.e(TAG, ex);
 }

您似乎忘记了绑定
ImageView

imageView = (ImageView) findViewById(R.id.image_view_id);
try
 {
    ImageView imageView = (ImageView) findViewById(R.id.Yourimageview);
    String imageName = "model_" + uv.categoryID;
    int id = context.getResources().getIdentifier(imageName, "drawable", context.getPackageName());
    imageView.setImageResource(id);
 }
 catch(Exception ex)
 {
     Log.e(TAG, ex);
 }

如果忘记绑定
图像视图
,请尝试此操作

imageView = (ImageView) findViewById(R.id.image_view_id);
try
 {
    ImageView imageView = (ImageView) findViewById(R.id.Yourimageview);
    String imageName = "model_" + uv.categoryID;
    int id = context.getResources().getIdentifier(imageName, "drawable", context.getPackageName());
    imageView.setImageResource(id);
 }
 catch(Exception ex)
 {
     Log.e(TAG, ex);
 }

如果忘记绑定
图像视图
,请尝试此操作

imageView = (ImageView) findViewById(R.id.image_view_id);
try
 {
    ImageView imageView = (ImageView) findViewById(R.id.Yourimageview);
    String imageName = "model_" + uv.categoryID;
    int id = context.getResources().getIdentifier(imageName, "drawable", context.getPackageName());
    imageView.setImageResource(id);
 }
 catch(Exception ex)
 {
     Log.e(TAG, ex);
 }
试试这个:

    try
    {
        ImageView imageView = (ImageView)findViewById(R.id.imageView);
        int categoryID = 0;
        String imageName = "model_" + categoryID;
        int id = this.getResources().getIdentifier(imageName, "drawable", this.getPackageName());
        imageView.setImageResource(id);
    }
    catch(Exception ex)
    {
        Log.e("NIKHIL", ex.toString());
    }
试试这个:

    try
    {
        ImageView imageView = (ImageView)findViewById(R.id.imageView);
        int categoryID = 0;
        String imageName = "model_" + categoryID;
        int id = this.getResources().getIdentifier(imageName, "drawable", this.getPackageName());
        imageView.setImageResource(id);
    }
    catch(Exception ex)
    {
        Log.e("NIKHIL", ex.toString());
    }

您应该使用
context.findviewbyd(R.id.image\u view\u id)。而且更好。因为他使用
context.getResources().getIdentifier
。我假设他是在活动上这样做的。这是另一个可选答案。谢谢你的建议。你应该使用
context.findviewbyd(R.id.image\u view\u id)。而且更好。因为他使用
context.getResources().getIdentifier
。我假设他是在活动上这样做的。这是另一个可选答案。谢谢你的建议。可能的副本可能的副本