getdrawable
时间: 2023-12-04 15:26:21 浏览: 78
getdrawable()是一个方法,可以从资源中获取Drawable对象。在Java代码中,您可以使用以下代码从资源中获取Drawable对象:
```
Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);
```
这里的"my_drawable"是一个Drawable资源的名称,它存储在res/drawable目录下。在此示例中,getResources()方法用于获取一个Resources对象,该对象提供了访问应用程序资源的方法,getDrawable()方法则用于从Resources对象中获取名为"my_drawable"的Drawable对象。
请注意,如果您的应用程序需要与较旧版本的Android兼容,则应使用ContextCompat.getDrawable()或ViewCompat.getDrawable()方法。例如,以下代码使用ContextCompat.getDrawable()方法从资源中获取Drawable对象:
```
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.my_drawable);
```
这里的"context"是一个Context对象,它通常是Activity或Application对象。ContextCompat.getDrawable()方法可以确保您的应用程序在所有版本的Android上都具有一致的行为。
相关问题
android studio getDrawable
在Android Studio 1.2.2中,当您编译代码时遇到Resources中getDrawable(int)已过时的警告信息时,这是由于Android Support库和AndroidX不兼容所引起的。为了解决这个问题,您可以使用以下方法之一:
方法一:使用ContextCompat.getDrawable()方法替代getDrawable()方法。
例如,将原来的代码:
getDrawable(R.drawable.my_image)
替换为:
ContextCompat.getDrawable(context, R.drawable.my_image)
方法二:将Android Support库迁移到AndroidX库。
您可以通过在build.gradle文件中将support库的依赖替换为相应的AndroidX库来进行迁移。
例如,将原来的依赖:
implementation 'com.android.support:appcompat-v7:28.0.0'
替换为:
implementation 'androidx.appcompat:appcompat:1.0.0'
以上是解决这个问题的两种方法。您可以根据您的需求选择其中一种方法来解决getDrawable(int)已过时的警告信息。
getDrawable()
getDrawable()是Android中的一个方法,用于从资源中获取Drawable对象。它接受一个资源ID作为参数,并返回一个Drawable对象。例如,以下代码会从应用程序的资源中获取一个名为"my_drawable"的Drawable对象:
```
Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);
```
请注意,这个方法在API level 22(即Android 5.1)及以下版本中已经被弃用,取而代之的是使用ContextCompat.getDrawable()或ViewCompat.getDrawable()方法。如果您的应用程序需要与较旧的Android版本兼容,则可以使用以下代码来获取Drawable对象:
```
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Drawable drawable = getResources().getDrawable(R.drawable.my_drawable, getTheme());
} else {
Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);
}
```
这样,在API level 22及以下版本中,将使用旧的getDrawable()方法获取Drawable对象,在API level 23及以上版本中,则使用新的getDrawable()方法获取Drawable对象。