我已经学会了如何通过添加OnTouchListener来对图像进行着色,其中我在图像上调用了setColorFilter.
我已经学会了如何使用九个补丁图像作为按钮和ImageButton的背景.
问题是,如果九路径图像是ImageButton的src,则它们不会拉伸,并且色调对背景图像没有影响.
如何按下九个补丁的ImageButton?有什么建议?
小智 7
我知道这是一个古老的问题,但它似乎是这个话题中唯一的问题.
您可以通过创建包含九个补丁节点和一个色调节点的xml资源文件来为九个补丁映像着色.示例:
<?xml version="1.0" encoding="utf-8"?>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/nine_patch_image"
android:tint="@android:color/black"/>
Run Code Online (Sandbox Code Playgroud)
然后,您可以在后台属性中引用此文件:
<LinearLayout
android:id="@+id/some_id"
android:background="@drawable/xml_filename">
Run Code Online (Sandbox Code Playgroud)
希望这会对某人有所帮助
Kry*_*lez -1
我认为通过为每个按钮状态创建一个单独的资源,您会得到更好的结果。例如,您可以像这样创建一个可绘制的 xml 文件:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/btn_focused"
android:state_pressed="false"
android:state_focused="true" />
<item android:drawable="@drawable/btn_default"
android:state_focused="false"
android:state_pressed="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)
然后为您的按钮创建一个样式,如下所示:
<style name="PushButton">
<item name="android:background">@drawable/btn</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后您应该能够设置图像按钮的样式并将 src 设置为您想要的任何图像。
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
style="@style/PushButton" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |