问题标签 [shapedrawable]

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 投票
8 回答
76325 浏览

android - 形状可绘制尺寸不起作用

我有一个非常简单的形状,我想设置它的宽度:

但是,当我将其分配给 EditText 的背景时,它只显示橙色背景而不是宽度为 2dp 的矩形。为什么设置大小不起作用?我想在左侧创建一个带有橙色矩形的透明可绘制对象。我也有这个包装在一个选择器中:

我试过增加高度只是为了看看它是否会改变大小。它没有。这就像它完全忽略了大小。怎么回事?

0 投票
3 回答
442 浏览

android - Android - 圆角矩形内的圆角矩形

我目前正在设计一个登录页面,但在使用圆角矩形时遇到了问题。我当前的布局看起来有点像这样:

在此处输入图像描述

它是一个圆角矩形,包含一个较小的圆角矩形。

如您所见,两个矩形的右边缘似乎合并了。但是,我想在两个矩形的边界之间保持恒定的距离,以获得更清晰的外观。有什么办法可以做到这一点吗?

0 投票
2 回答
15562 浏览

android - Android虚线可绘制潜在ICS错误

下面是一条虚线,在 XML 中定义为 ShapeDrawable:

这将在几部姜饼手机上画出一条漂亮的虚线。然而,在 Galaxy Nexus 上,破折号似乎被忽略了,形状被绘制成一条连续的线。更奇怪的是,运行 ICS 的模拟器会用破折号正确渲染它,这只是物理设备搞砸了。

我错过了一些明显的东西吗?或者这真的是 Android 4.0 的错误吗?这条线在几个地方使用。这是一个示例 ImageView:

0 投票
2 回答
4744 浏览

android - xml drawable 中的形状线始终为黑色

我正在尝试制作一个如下图所示的可绘制对象: 3 条水平线1dp,每条具有不同的颜色,其余空间应填充渐变:

灰色部分代表渐变

所以我写了这个:

渐变绘制正确,但 3 线保持黑色。我试图添加<stroke android:color="a_color" />没有结果。

我错过了什么?

0 投票
5 回答
27367 浏览

android - 渐变半径占屏幕尺寸的百分比

我正在尝试创建一个具有径向渐变背景的可绘制形状,其半径将适应屏幕尺寸(查看相关文档)。

这是我的代码:

但它似乎不起作用。如果我删除“%p”,它会起作用,但是半径将是静态的,因此不会调整到屏幕尺寸......知道有什么问题吗?

0 投票
1 回答
1842 浏览

android - 形状drawable和canvas.draw之间的区别,解决方法?

我使用两种方法在我的应用程序中显示按钮和编辑文本:一种是使用可绘制的 xml 形状,并将其应用于按钮/edittext 的背景,另一种是在自定义视图中使用画布。

我希望结果完全相同,但事实并非如此。您可以在下面看到各个笔画之间的微小差异:

在此处输入图像描述

两者都是具有 2dp 笔划宽度和 8dp 角半径的圆形矩形。这是每个人的代码:

左,用作背景的可绘制形状:

对了,自定义视图的 onDraw 方法:

哪里:

而且我在使用相同的所谓等效方式显示渐变时观察到微小的差异:可绘制的形状具有更好的显示效果,颜色看起来更好,线条不模糊。

有人可以解释一下为什么/如何解决它吗?如果我只使用一种方式,那将是第二种方式,但我不想这样做,因为它看起来不干净。谢谢你的帮助!

编辑 :

令人惊讶的是,这种差异仅在自定义布局的笔画宽度为奇数时才会出现。对于偶数值,显示完全相同!

0 投票
1 回答
4436 浏览

android - Android:RoundRectShape:修改角半径

我有一个在 a的函数RoundRectShape中绘制的。ViewonDraw()

这个形状的角会被这个视图上的任何拖动操作通过一个重写的onTouchEvent函数(调用invalidate()来强制调用onDraw())修改。

在 中初始化变量时onDraw,Eclipse 会显示一条警告,指出在绘制/布局操作期间避免对象分配(改为预分配和重用)

这个问题解释如下:

您应该避免在绘图或布局操作期间分配对象。这些被频繁调用,因此流畅的 UI 可能会因对象分配导致的垃圾收集暂停而中断。

通常处理的方式是预先分配对象并为每个绘图操作重用它们

为此,我显然必须能够修改构造函数中设置的角半径。RoundedRectShape没有提供设置器(我很确定相关的成员变量是不可访问的)。

我知道这是一个小对象和一个小问题,但是当类提供的用于设置圆角半径的唯一方法是通过构造函数时,如何在不重新初始化对象的情况下更改这些角?

或者这只是一个例子,做最好的事情必须用做可能的事情来代替?

谢谢,

PS 在方法中调用构造函数将删除警告,但由于每次都调用onTouchEvent()的事实,无论如何都不会完成任何事情onDraw()invalidate()

0 投票
1 回答
5910 浏览

android - 你应该如何使用带有 PathShape 的 ShapeDrawable 在自定义视图上画线?

我正在尝试在 custom 中画一条线View。在这里,我创建了一个Path只有一个片段的简单片段,PathShape从中创建了一个,最后将其粘贴到 aShapeDrawable中,目的是使用它在Canvas内部绘制onDraw()。但是,这不起作用。看我的例子,在这里。

从我在onDraw()方法中的评论中可以看出,既不使用PathShape也不使用ShapeDrawable将 绘制PathCanvas实际作品上。当我尝试时,什么都没有画出来。有谁知道为什么?

我正在测试的设备运行的是 Android 4.1.1。

0 投票
1 回答
843 浏览

android - Android:高级渐变样式

请原谅 我试图让我的列表视图弹出一点图像的缺乏。我正在尝试的一个选项是为每个列表行的背景添加渐变。渐变具有三种颜色,默认情况下类似于以下结构:

-- (起始颜色)
|
|
-- (中心颜色)
|
|
--(结束颜色)

我希望它更像这样:

-- (起始颜色)
|
-- (中心颜色)
|
|
-- (中心颜色)
|
--(结束颜色)

不同之处在于中间有更多的中心颜色,并且渐变从非常接近末端开始。

有人可以给我一些指导吗?

编辑我试图尽可能远离图像,尽管我不反对尝试图像选项。

0 投票
0 回答
334 浏览

android - 使用圆角矩形为应用小部件按钮自定义颜色

我有一个创建小部件的应用程序,用户可以在其中通过颜色选择对话框设置按钮背景的颜色。但是,我可以将远程视图中的按钮设置为具有这种颜色的唯一方法是这样做

但这总是使背景成为矩形,替换任何先前设置的背景可绘制。我想做的是将按钮设置为圆角矩形,可以设置为自定义颜色。这可能吗,如果可以,怎么办?