问题标签 [android-drawable]

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 投票
2 回答
608 浏览

android - Android:如何为所有像素密度使用单个图像资源?

我有一张我想用作我的一个视图的背景图案的图像。作为一种模式,它被平铺,因此与分辨率无关:我希望图像中的一个像素在屏幕上显示为一个像素,无需缩放,无论设备的像素密度如何。

现在,我当然可以通过制作四个相同的图像副本并将它们放到我的 mdpi、ldpi、hdpi 和 xhdpi 目录中来做到这一点。但这似乎是多余和臃肿的。有没有办法告诉 SDK 在每种情况下都只使用一个图像?

谢谢。

0 投票
1 回答
796 浏览

android - 在按钮上调用选定状态会使文本消失

我有一个具有选定状态的简单选择器,因此我可以在我的 Button 上 setSelected(true) 并显示它被选中。我正在创建一个 ActionBar 类型的东西。它在某些 android 设备(nexus 平板电脑)(v4.1.2)上运行良好,但在三星 Galaxy S2(v2.3.6)上,当我调用 setSelected(true) 状态时,它会隐藏按钮的文本。任何人都知道为什么会发生这种情况?

我的 *button_tab_selected* 和 *button_tab* png 图像资源都是 47x47 9 补丁。

drawable_tabcontrolbutton.xml

布局代码

Java 代码

0 投票
0 回答
1813 浏览

android - Android默认微调器列表选择颜色随机变化

我正在尝试在 Android 中实现一个下拉列表。

这是Spinner我在 layout.xml 中使用的

MainActivity.java,我正在使用以下代码,

这是我的spinner_layout.xml

选择器文本颜色.xml

选择器背景.xml

但是,有时微调器列表项选择的颜色会发生变化。 在此处输入图像描述 在此处输入图像描述

不知道什么时候能正常显示。随机选择颜色正在改变。有时选择显示为第一张图像,有时显示为第二张图像。

为什么会发生这种情况?如何解决这个问题?

0 投票
0 回答
1051 浏览

android - 将用作谷歌地图中标记图标的旋转可绘制对象

我想从可绘制的地图(api v2)中添加标记,目前我这样做:

现在我想在将它用作标记图标之前旋转可绘制对象。最好的方法是什么?我试过了

但是生成的drawable奇怪地变形了。我认为必须有一个更好、更清洁的解决方案。

0 投票
1 回答
3112 浏览

android - Shape Drawable gradientRadius 仅适用于像素。这不是没用吗?% 值不起作用

我想使用具有径向渐变的可绘制形状作为视图的背景。根据 javadoc,渐变的半径可以设置为特定值(可能是像素)或百分比:

机器人:渐变半径

渐变的半径,仅用于径向渐变。

可能是浮点值,例如“1.2”。

可能是一个小数值,它是一个附加了 % 或 %p 的浮点数,例如“14.5%”。% 后缀始终表示基本大小的百分比;可选的 %p 后缀提供了相对于某些父容器的大小。

如果我错了,请纠正我,但在这里使用像素值是完全没用的,因为这个渐变看起来从一个屏幕密度到另一个屏幕密度完全不同(经过测试,是的,这是真的)。我尝试使用 % 和 %p 值,但它们根本不起作用。

我深入研究了 Android 源代码以查看如何处理 gradientRadius 并在 GradientDrawable 类中找到了这个:

啊哈!因此,所有添加 % 或 %p 所做的就是将我的值除以 100。(我对此进行了测试,因为 TypeValue.getFraction() 的文档更加不清楚)。65% 变为 0.65。有道理,但没有任何用处。

那么使用 gradientRadius 的最佳方法是什么?

PS。我已经使用 GradientDrawable 以编程方式添加了我的背景,并且得到了想要的结果。我使用 GradientDrawable.setGradientRadius() 和一个相对于视图宽度的值,并在设备之间获得一致的渐变。

0 投票
5 回答
18927 浏览

android - 使用设置了三种以上颜色的 gradientDrawable

根据我读过的内容,您可以使用gradientDrawable并为其设置三种颜色,例如:

但是如果我想要三种以上的颜色,不仅如此,我还希望能够设置每种颜色的放置位置(重量/百分比)?

是否可以使用 API 或者我应该制作自己的自定义可绘制对象?如果我需要制作自己的自定义drawable,我应该怎么做?

0 投票
0 回答
254 浏览

android - 减少 Android 应用程序启动时间

我准备了一个应用程序。

我的应用程序有带有可绘制动画的启动画面。当应用程序启动时显示白屏(1 或 2 秒)并显示我的启动动画。有一段时间动画没有完成它是移动到下一个屏幕。我想我犯了一些错误我的代码是,

如何减少应用启动时间?

0 投票
1 回答
424 浏览

android - 这些稍微不同的状态可绘制对象的行为有何不同?

Q1)查看ListView可绘制的原始状态,因为listSelector我们有这样的东西(我剥离了一些代码以简化示例):

但我一直在我的应用程序上这样做:

这似乎产生了相同的结果,而且更简单。您是否注意到第一个比我自己的版本更好的情况?我只是想确保我没有遗漏一些重要的东西,因为我喜欢让我的代码尽可能短......

Q2)我看到许多状态drawables<item android:drawable="<TRANSPARENT>" android:state_window_focused="false"/>作为最重要的项目,但我不明白为什么需要它。总是让state_window_focused我有点困惑……真的有必要吗?

0 投票
2 回答
501 浏览

android - Android 不支持 ldpi 限定符

我想区分以下两种设备的布局/可绘制对象:

所以我使用以下合格的目录:

但是当我在屏幕尺寸为 480x764 的 7" ldpi 设备上运行时,Android (V4.0.3) 会选择 hdpi 版本。为什么?当我阅读文档时,ldpi 应该更适合。

当我完全删除 layout-sw600dp-hdpi / drawable-sw600dp-hdpi 时,它确实选择了 2),一切都很好。但我也需要 hdpi 版本。

那么如何区分 7" 设备的 ldpi/hpdi 版本呢?

谢谢!

安德烈

0 投票
2 回答
10011 浏览

android - Android setBackgroundResource 导致内存不足异常

我正在开发一个在 ViewPager 中显示 12 个视图的游戏本应用程序。这是我的自定义 PagerAdapter :

在某些设备中,当调用这行代码时,它会随机导致内存不足异常

但是在所有设备中,当我翻页时,我会在 logcat 中看到类似的内容:

当在另一个 Activity 中我根据用户操作为主布局设置不同的背景资源时,该应用程序也会在某些设备中因同样的问题而崩溃。这里的代码:

当我在 mainLayout 上调用 setBackgroundResource() 时,它再次运行异常。

我希望你能帮助我解决这个问题,在此先感谢!