我想将Android项目中标准TextView
的背景设置为自定义形状。形状定义如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient android:type="radial"
android:angle="90"
android:startColor="#FF1EFFFF"
android:endColor="#B01E90FF"
android:centerColor="#201E90FF"
android:centerX="0.5"
android:centerY="1.0" />
</shape>
我尝试通过调用textView上的setBackgroundResource()
方法来设置自定义形状。
TextView main = (TextView) findViewById(R.id.mainTextView);
main.setBackgroundResource(R.drawable.gradient);
但是,当我在真实设备或Android模拟器上部署此项目时,它将无法启动,并显示此错误:
ERROR/AndroidRuntime(4369): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.android.gradienttest/org.android.gradienttest.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>
尝试通过首先将其作为形状来设置drawable会导致相同的错误。 把它作为一个形状我的意思是:
Resources res = getResources();
Shape shape = res.getDrawable(R.drawable.gradient);
但正如我所说,这导致同样的错误...我知道它在我尝试加载形状时会出错,但问题是我不知道为什么......所以有人能给我一些帮助这一个?它必定是一个微不足道的错误,因为没有那么多代码......
答案 0 :(得分:1)
似乎我忘了在XML文件中添加属性。该属性为android:gradientRadius="180"
。通过添加此属性,正确绘制了渐变。谢谢用户639183!
答案 1 :(得分:0)
CenterX和centerY应该是整数。 This page列出了所有参数所需的内容。