Tôi có
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#FFFF00" />
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
</shape>
<TextView
android:background="@drawable/test"
android:layout_height="45dp"
android:layout_width="100dp"
android:text="Moderate"
/>
Vì vậy, bây giờ tôi muốn hình dạng này thay đổi màu sắc dựa trên thông tin tôi nhận được từ một cuộc gọi dịch vụ web. Vì vậy, nó có thể có thể là màu vàng hoặc màu xanh lá cây hoặc màu đỏ hoặc bất cứ điều gì tùy thuộc vào màu sắc tôi nhận được từ cuộc gọi serivce web.
Làm thế nào tôi có thể thay đổi màu sắc của hình dạng? Dựa vào thông tin này?
View.getBackground()
trả về aGradientDrawable
và không phải là nguyên nhânShapeDrawable
khiến ứng dụng bị sập khi chạy, do không hợp lệ khi cố gắng lấy tham chiếu và đặt màu lập trình. [Tài liệu hình dạng Android] ( developer.android.com/guide/topics/resource/ từ ) nêu rõ: TÀI LIỆU TÍNH TOÁN TÍNH TOÁN: Con trỏ tài nguyên đến aGradientDrawable
.