Android - 从@drawable String 打开资源

android

1个回答

写回答

Theron Wang

2025-07-07 04:05

+ 关注

Android
Android

如何在Android中 并添加案例代码

Android开发中,我们经常需要使用资源文件来加载图片、文本等。其中,@drawable是一个常用的关键字,用于指定资源文件夹下的图片资源。那么,在开发过程中,如何通过一个字符串来打开@drawable中的资源呢?本文将介绍如何实现这一功能,并通过案例代码进行详细说明。

使用Resources类的getIdentifier方法

Android中,可以使用Resources类的getIdentifier方法来动态地获取资源的ID。这个方法的使用非常灵活,可以根据资源的名称、类型和包名等信息来获取资源ID。下面是一个示例代码,展示了如何通过一个字符串来打开@drawable中的资源:

Java

public static int getResourceId(Context context, String resourceName) {

Resources resources = context.getResources();

String packageName = context.getPackageName();

return resources.getIdentifier(resourceName, "drawable", packageName);

}

在这段代码中,我们首先获取了Resources对象,并通过Context的getPackageName方法获取了当前应用的包名。然后,通过调用getIdentifier方法,并指定资源的名称、类型和包名,即可获取到资源的ID。

使用getResourceId方法打开@drawable资源

在前面的示例代码中,我们定义了一个getResourceId方法,用于获取@drawable资源的ID。下面是一个使用该方法的案例代码:

Java

public class MAInActivity extends AppCompatActivity {

private ImageView imageView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setcontentView(R.layout.activity_mAIn);

imageView = findViewById(R.id.imageView);

String resourceName = "image";

int resourceId = getResourceId(this, resourceName);

if (resourceId != 0) {

imageView.setImageResource(resourceId);

} else {

Log.e("MAInActivity", "Resource not found");

}

}

public static int getResourceId(Context context, String resourceName) {

Resources resources = context.getResources();

String packageName = context.getPackageName();

return resources.getIdentifier(resourceName, "drawable", packageName);

}

}

在这个示例中,我们首先在布局文件中定义了一个ImageView控件,并通过findViewById方法获取到该控件的实例。然后,我们指定了一个资源名称(例如,"image"),通过调用getResourceId方法获取到资源的ID。最后,通过调用ImageView的setImageResource方法,将资源设置给ImageView。

通过使用Resources类的getIdentifier方法,我们可以根据一个字符串来打开@drawable中的资源。在本文中,我们介绍了如何使用这个方法,并通过案例代码进行了详细的说明。希望本文对你在Android开发中使用资源文件有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号