问题标签 [statelistdrawable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
384 浏览

android - ICS 上的意外按钮填充

我有一个带有状态列表可绘制的自定义按钮,该按钮布局紧凑,填充很少。这个按钮在 MDPI 和 HDPI 设备上看起来很棒,但在我的 Motorola Xoom(ICS、MDPI 设备)上填充都是错误的。修改 'padding' 和 'margin' 属性没有任何作用。

有人对可能导致不必要填充的原因有任何建议吗?我相当有信心 state list drawable 和 9patch drawable 都很好(它们在其他 MDPI 设备上完美呈现)。

附件是最终产品外观的示例 - 绿色边框表示其理想外观(以及按钮在其他设备上的外观);洋红色边框表示 Xoom 上的外观。在此处输入图像描述

0 投票
1 回答
1184 浏览

android - 按下按钮背景更改布局

我目前正在使用相机 api,并希望实现一个按钮,用于启动和停止视频录制。该按钮有四个不同的图像:video_start_default、video_start_pressed、video_stop_default 和 video_stop_pressed。它应该在按下时和开始/停止视频后改变其布局。

我为此创建了这个 xml 文件。

为了在开始和停止工作之间进行更改,我在 onclicklistener 中设置了 select 属性

基本上这行得通。

在按下 video_start_default 时,video_start_pressed 会正确显示,但问题是在释放 video_start_pressed 后,video_stop_pressed 会显示一毫秒而不是 video_stop_default。奇怪的是,单击 video_stop_pressed 后问题没有发生。这是 video_start_default 直接可见的。

我希望描述不会令人困惑

0 投票
1 回答
986 浏览

android - 从代码而不是从 xml 创建选择器时出现意外结果

我在将一些工作 XML 文件转换为代码时遇到了一些麻烦。我有一个 ListView,我需要能够在运行时从高级未知的资源(因此为什么不使用 XML)切换其按下/检查的可绘制对象;

以下配置效果很好:

主.xml:

选择器.xml:

list_row.xml:

主.java:

结果是这样的,非常棒(按下:蓝色,选中:绿色,否则:橙色):

结果1

但是,如果我删除

从 list_row_xml,并通过代码应用它:

我得到以下信息(一切都得到 state_pressed 可绘制,蓝色):

在此处输入图像描述

什么地方出了错?我很确定我已将选择器适当地转换为代码。

0 投票
1 回答
1286 浏览

android - 状态列表可绘制在预蜂窝版本上无法正常工作

我正在制作一个带有主要针对 Android 4.0 的清单的应用程序。在那里,我使用这个选择器作为我的列表项的背景:

“state_activated”似乎可以解决问题,因为如果我拿走那个选择器,检查的项目不会保持明显的检查状态。但是,这仅适用于蜂窝后版本。在此之前的任何内容都会忽略 state_activated(或 state_checked 和 state_selected)并且只接受 state_pressed(当我触摸它们时线条会自行着色,但之后不会保持着色)。这对我来说真的很困惑,所以我会很感激任何关于此事的建议。

谢谢。

0 投票
2 回答
9704 浏览

android - Statelist drawable android:state_enabled在xml中不起作用

我正在尝试将禁用状态添加到我现有的 statelist drawable 中,但它不起作用。

最初,我有这个代码:

它适用于选中和未选中。

现在我想像这样添加 android:state_enabled="false" :

并且它永远不会切换到禁用的图像。

有任何想法吗?

编辑

我添加setEnabled(false)到视图的构造函数中,我正在设置这个 statelist drwable,现在我看到了禁用的图像,但是一旦我将视图设置为启用,它就不会再次切换到禁用状态。

0 投票
0 回答
92 浏览

android - Statelist 可绘制样式看起来像旧的 Android 2.2 样式

我本质上是在尝试实现一个不会滚动的类似 ListView 的东西。(相关:如何获得不可滚动的 ListView?)。除了“点击”动画外,我几乎所有东西都在工作。

我的列表元素的基本小部件是LinearLayout. 我发现了这个不错的技巧,将背景可绘制设置为可选元素,并打开“可点击”。它工作正常,但风格似乎是旧的 Android 2.2,带有橙色渐变。

相关代码:

添加,

似乎没有帮助。提前致谢!

0 投票
1 回答
8705 浏览

android - StateListDrawable 不起作用

我正在尝试以编程方式将 a 设置StateListDrawable为库项目的自定义视图的背景。这就是我正在做的事情:

但是,这不起作用:它总是绘制启用状态。我希望它在按下按钮时绘制Pressed状态。我究竟做错了什么?

0 投票
1 回答
476 浏览

android - StateListDrawable 行为奇怪

我有这个 StateListDrawable:

这是我的布局:

然后我像这样设置drawable:

当我单击 actionBack 按钮时,整个布局变成我拥有的颜色,如 onClickButton。

我只是希望它表现得好像我按下了一个常规 xml 定义的可绘制按钮。

我究竟做错了什么?

0 投票
1 回答
3934 浏览

android - Android:将编程单击的列表视图项设置为选定状态

在我的应用程序中,我有一个包含列表视图的左窗格。在此列表视图中进行的选择会调用相关数据,从而更新右窗格以及活动中的其他链接和元素。由于这种设计,左窗格必须始终进行选择,以便为活动的其余部分提供有用的值。

在我的活动的 onCreate 方法中,我调用以下命令以默认选择列表中的第一个元素。(programList 是我的列表视图)

这一切都很好,并且视图按预期加载正确的值,除了一件事。

我为列表视图添加了一个可绘制的选择器,它突出显示了选定的元素。当在模拟器中物理单击该项目时,它会突出显示(我使用的是 CHOICE_MODE_SINGLE),但在调用 performItemClick() 时它不会突出显示。我四处寻找有关stackoverflow的帮助,并尝试在单击之前使用以下内容,但这并没有什么不同。

从读取 API 看来,setSelection 方法并没有在触摸界面下设置项目的状态,从我的结果来看,performItemClick 方法似乎也没有。我也尝试使用

然后我可以读取文本视图的状态并看到它已被选中,但这也没有改变屏幕上显示的内容。

onCreateMethod 中是否存在阻止按钮状态以不同方式绘制的内容?我尝试使单个文本视图中的可绘制对象无效并使文本视图本身无效,但这没有帮助。我还尝试更改文本视图的背景,但似乎我设置的选择器控制它或绘制在前面。我知道我有正确的 textView 因为我使用 getText 来阅读里面的内容。

如果有人能够帮助我解决这个问题或指出我的解决方案,将不胜感激。

0 投票
1 回答
912 浏览

android - 带有 StateListDrawable 的 ImageView 不起作用

这看起来很简单,但它只是行不通。ImageView 应在选中时更改位图,但始终显示未选中的图像: