通过getResource().getDrawable获得的Drawable对象可以强制转换为上述GradientDrawable对象吗?
时间: 2024-03-28 15:41:34 浏览: 21
不一定能够强制转换,因为`getResource().getDrawable()`方法返回的是`Drawable`类型的对象,而不是特定的`GradientDrawable`对象。如果资源文件对应的是`GradientDrawable`类型的对象,那么可以将其强制转换为`GradientDrawable`对象,否则强制转换会导致类型转换异常。为了避免这种情况,可以先判断一下返回的`Drawable`对象是否是`GradientDrawable`类型,可以使用`instanceof`关键字进行类型判断,示例代码如下:
```
Drawable drawable = getResources().getDrawable(R.drawable.shape);
if (drawable instanceof GradientDrawable) {
GradientDrawable gradientDrawable = (GradientDrawable) drawable;
// 将drawable对象强制转换为GradientDrawable对象
// 并进行后续的操作
} else {
// drawable对象不是GradientDrawable类型
// 处理异常情况
}
```
相关问题
下面资源调用写法有误吗 getResources().getDrawable(R.drawable.icon);
从Android 5.0(API级别21)开始,getDrawable(int)方法已被弃用,建议使用 ContextCompat.getDrawable(Context, int) 方法替代。因此,如果你的应用程序的 minSdkVersion 为 21 或更高版本,则应该使用以下代码来获取 drawable 资源:
```java
ContextCompat.getDrawable(context, R.drawable.icon);
```
如果你的应用程序的 minSdkVersion 低于 21,则可以使用以下代码来获取 drawable 资源:
```java
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.icon);
```
但需要注意的是,getResources().getDrawable(int)方法已过时,这意味着在将来的 Android 版本中可能会被移除,因此建议使用 ContextCompat.getDrawable(Context, int) 方法替代。
rbText.setBackground(getResources().getDrawable(R.drawable.unselected_background)); rbKeypad.setBackground(getResources().getDrawable(R.drawable.unselected_background)); rbChat.setBackground(getResources().getDrawable(R.drawable.unselected_background));
这段代码的功能是设置三个 RadioButton(rbText、rbKeypad、rbChat)的背景为 unselected_background。其中 R.drawable.unselected_background 是一个 Drawable 资源,可能是一个图片或者是一个 XML 文件。这样设置可以使得这三个 RadioButton 的外观与其他未被选中的 RadioButton 保持一致,从而提高界面的一致性和美观性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)