Android:如何使用可绘制聚焦状态的按下状态绘制ImageButton
我试图实现这样一种效果:按下后,一个ImageButton以按下的橙色背景绘制图像,直到它失去焦点,然后触摸其他对象 StateListDrawable似乎适用于这种情况,因为它允许我定义如何为聚焦状态绘制背景。如果我能简单地定义,背景应该是用按下的drawable绘制的,对于聚焦状态,那将是非常棒的。但是,我看不出有任何方法可以引用默认的可绘制Android:如何使用可绘制聚焦状态的按下状态绘制ImageButton,android,button,background,Android,Button,Background,我试图实现这样一种效果:按下后,一个ImageButton以按下的橙色背景绘制图像,直到它失去焦点,然后触摸其他对象 StateListDrawable似乎适用于这种情况,因为它允许我定义如何为聚焦状态绘制背景。如果我能简单地定义,背景应该是用按下的drawable绘制的,对于聚焦状态,那将是非常棒的。但是,我看不出有任何方法可以引用默认的可绘制 关于如何达到这个效果,有什么建议吗?如果我理解你的问题,也许可以帮助你 我做同样的任务定义一个xml背景选择器,它包含每个状态的可绘制内容,这个文件更
关于如何达到这个效果,有什么建议吗?如果我理解你的问题,也许可以帮助你 我做同样的任务定义一个xml背景选择器,它包含每个状态的可绘制内容,这个文件更广泛,因为您可以定义可绘制内容、形状等。。。最重要的功能是,你可以设置任何绘图或形状你想要 这里我定义了我的背景选择器。。。我称之为selector.xml并保存到drawable文件夹中
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/shape_7"/>
<item android:state_pressed="true" android:drawable="@drawable/shape_7" />
<item android:state_pressed="false" android:drawable="@drawable/shape_6" />
</selector>
还是xml方式
<ImageView
android:background="@drawable/selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4px"
android:src="@drawable/switch_icon"/>
干杯如果我理解你的问题,也许可以帮助你 我做同样的任务定义一个xml背景选择器,它包含每个状态的可绘制内容,这个文件更广泛,因为您可以定义可绘制内容、形状等。。。最重要的功能是,你可以设置任何绘图或形状你想要 这里我定义了我的背景选择器。。。我称之为selector.xml并保存到drawable文件夹中
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/shape_7"/>
<item android:state_pressed="true" android:drawable="@drawable/shape_7" />
<item android:state_pressed="false" android:drawable="@drawable/shape_6" />
</selector>
还是xml方式
<ImageView
android:background="@drawable/selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4px"
android:src="@drawable/switch_icon"/>
干杯查看android SDK中的drawables文件夹。默认情况下,您可以找到它使用的所有九个修补程序图像。你想要的可能被称为btn_pressed、btn_focused等或类似的东西。从技术上讲,您可以在项目中通过id引用它们,但我认为建议您将它们复制到您的项目中,因为这些id并不是固定不变的。查看android SDK中的drawables文件夹。默认情况下,您可以找到它使用的所有九个修补程序图像。你想要的可能被称为btn_pressed、btn_focused等或类似的东西。从技术上讲,你可以在你的项目中通过id引用它们,但我认为建议你将它们复制到你的项目中,因为id不会被夸耀为保持不变。这是我在我的应用程序的全息暗主题中所做的,但它没有我想要的圆边 res/drawable/image\u button\u background.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/holo_blue_dark" android:state_pressed="true"/>
</selector>
这就是我在应用程序的全息暗主题中的工作原理,但它没有我想要的圆形边缘 res/drawable/image\u button\u background.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/holo_blue_dark" android:state_pressed="true"/>
</selector>
这是有帮助的,但是,可能主要的问题是,我希望选择和按下,并集中绘图是安卓默认。是否定义了shape_7和shape_6,以便它们使用默认的android drawalbes?当我说默认android drawables时,我指的是那些在没有设置自定义背景的情况下使用的drawables。这很有帮助,但是,可能主要的问题是,我希望选中的、按下的和聚焦的drawables是android默认的。是否定义了shape_7和shape_6,以便它们使用默认的android drawalbes?当我说默认android drawables时,我指的是那些在未设置自定义背景时使用的drawables谢谢。我把这个标记为已回答,因为它确实回答了我的问题,但实际上并没有解决我的问题。问题是imagebutton在触摸的向上事件上失去焦点。我想让imagebutton保持焦点,直到其他东西抓住它,这样它就可以像聚焦一样绘制,直到其他东西被触摸为止。有什么建议吗?请尝试在onClickListener的onClickView v方法中调用yourButton.requestFocus以获取该按钮。@ab11将按钮设置为在触摸模式下可聚焦android:focusableInTouchMode=True谢谢。我把这个标记为已回答,因为它确实回答了我的问题,但实际上并没有解决我的问题。问题是imagebutton在触摸的向上事件上失去焦点。我想让imagebutton保持焦点,直到其他东西抓住它,这样它就可以像聚焦一样绘制,直到其他东西被触摸为止。对此有什么建议吗?请尝试在onClickListener的onClickView v方法中调用yourButton.requestFocus以获取按钮。@ab11将按钮设置为在触摸模式下可聚焦android:focusableInTouchMode=true