可绘制资源不随按钮一起显示
我正在尝试遵循位于 http://www.gradient-buttons-for-android/" 的教程。 dibbus.com/2011/02/gradient-buttons-for-android/,但是我没有得到预期的结果。一切都编译得很好,但是当我运行它时,我得到一个没有任何颜色、渐变甚至边框的按钮(所以实际上我看到的只是按钮文本)。按钮本身对事件的响应正常。
为了与尽可能多的设备兼容,我使用 android:minSdkVersion="3",这可能是一个问题吗?
这是我的布局 xml 文件的一部分:
<TableRow>
<Button
android:id="@+id/button_calculate"
android:background="@drawable/copy_btn"
android:layout_column="1"
android:layout_span="2"
android:padding="5dp" />
</TableRow>
这是 copy_btn.xml,位于可绘制对象内。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#70c656" />
<stroke
android:width="1dp"
android:color="#53933f" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#70c656"
android:endColor="#53933f"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#53933f" />
<corners
android:radius="4dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
谢谢
I'm trying to follow the tutorial located at http://www.dibbus.com/2011/02/gradient-buttons-for-android/, however I'm not getting the expected result. Everything compiles fine, however when I run it I get a button without any colors, gradients, or even borders (so actually all I see is just the button text). The button itself responds to events ok.
In order to be compatible with as many devices as possible I'm using android:minSdkVersion="3", could this be an issue?
This is part of my layout xml file:
<TableRow>
<Button
android:id="@+id/button_calculate"
android:background="@drawable/copy_btn"
android:layout_column="1"
android:layout_span="2"
android:padding="5dp" />
</TableRow>
This is copy_btn.xml, located inside drawables.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#70c656" />
<stroke
android:width="1dp"
android:color="#53933f" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#70c656"
android:endColor="#53933f"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#53933f" />
<corners
android:radius="4dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您将 android:layout_height="wrap_content" android:layout_width="wrap_content" 添加到 Android Manifest 中的按钮,则效果很好。 minSdkVersion 与此无关,因为大多数时候它们是向后兼容的。
“(所以实际上我看到的只是按钮文本)”是什么意思?当你没有使用 android:text 属性时,如何才能看到按钮文本?您的应用程序中有另一个按钮,或者您的代码设置文本。请检查一下。
It works fine if u add android:layout_height="wrap_content" android:layout_width="wrap_content" to your button in Android Manifest. minSdkVersion has to do nothing with this as most of the times they are backward compatable.
What "(so actually all I see is just the button text)" means? How can u see a button text when u haven't used android:text attribute? Either there is another button in ur app or u r setting text from code. Do check this.