- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下带有 LinearGradient 的代码,它看起来与所有其他示例非常相似。
public class CustomColourBar extends View
{
public CustomColourBar( Context context, AttributeSet attribs )
{
super( context, attribs );
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(170, 40);
}
@Override
protected synchronized void onDraw( Canvas canvas )
{
int height = this.getMeasuredHeight();
int width = this.getMeasuredWidth();
LinearGradient shader = new LinearGradient(
0, 0, 0, height,
Color.RED, Color.YELLOW,
Shader.TileMode.CLAMP );
Paint paint = new Paint();
paint.setShader(shader);
RectF fgRect = new RectF( 0, 0, width, height);
canvas.drawRoundRect(fgRect, 7f, 7f, paint);
}
}
在布局中,这会产生以下内容,这几乎是正确的:
但是,当其他东西改变了我 View 的 Y 位置时,它就出错了:
LinearGradient 使用相对于最顶层 View (即对话框)的绝对位置。我这辈子都想不通 - 为什么?
谢谢!
罗布
最佳答案
我遇到了同样的问题。着色器中的位置不是形状而是相对于 Canvas 。
因此,您需要始终围绕原点在 Canvas 上绘制形状,并将 Canvas 平移到所需位置。
例如:
不要:
canvas.drawCircle(posx, posy, radius);
做:
canvas.save();
canvas.translate(posx, posy);
canvas.drawCircle(0,0,radius);
canvas.restore();
希望对您有所帮助! ;)
关于Android LinearGradient 和奇怪的相对定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5124335/
我需要将 CSS LinearGradient 转换为 Flutter LinearGradient 这是 CSS 代码: background-image: linear-gradient(134d
我需要将 CSS LinearGradient 转换为 Flutter LinearGradient 这是 CSS 代码: background-image: linear-gradient(134d
我正在尝试制作一个从透明逐渐变为白色的容器。我会把它放在东西上面,这样看起来后面的内容正在逐渐消失到背景的白色中。 当我尝试使用 LinearGradient 执行此操作时,我得到了这种奇怪的灰色。
我正在尝试制作一个从透明逐渐变为白色的容器。我会把它放在东西上面,这样看起来后面的内容正在逐渐消失到背景的白色中。 当我尝试使用 LinearGradient 执行此操作时,我得到了这种奇怪的灰色。
谁能指出这段代码有什么问题? HTML: Insert title here @import "js/jquery.svg/jquery.svg.css"; JavaSc
我尝试在布局中绘制 LinearGradient,但渐变不适合我的 View 。 我看到的不是渐变,而是一种颜色。 我认为这是因为我没有给出正确的 View 维度 这是我的代码: backGround
我有以下带有 LinearGradient 的代码,它看起来与所有其他示例非常相似。 public class CustomColourBar extends View { public Custom
我试图找到旋转嵌套到例如中的 LinearGradient 对象的方法。 Rectangle 对象,说: Rectangle rect = new Rectangle(0, 0, 200, 200);
我一直在更新一个应用程序中的一些旧代码,该应用程序在 onDraw 中有很多重新分配的消息: Avoid object allocations during draw/layout operation
你好! 是否有创建在起始颜色和最终颜色之间平滑过渡的 LinearGradient 的解决方案? new Container( decoration: new BoxDecoratio
有什么方法可以使用 LinearGradient 构建渐变,然后在其停靠点的某个位置访问它的颜色? 例子: LinearGradient gradient = LinearGradient( co
我有一个用作 OpacityMask 的 LinearGradientBrush,我希望我的动画旋转渐变,所以我试图为 StartPoint 和 EndPoint 的位置设置动画,但我无法让它工作几个
使用 SVG 的新手。我有一个工作演示,它在 x 轴上从左到右有一个线性渐变渐变,但是我试图在 y 轴上从下到上获得相同的效果。尝试了几种不同的方法,但无法使其正常工作。 https://codepe
是否有任何选项可以保持动画结束时的渐变位置? 最佳答案 您必须为 a
当我在 fiddle 中使用线性渐变作为背景颜色时: http://jsfiddle.net/dkzn5/ html代码在哪里: 1 个示例箭头 溢出的文字必须隐藏,可见的文字必须在单行 2 在
我创建了使用两个路径 sec1 和 sec2 的简单示例。对于这两个路径,我都使用带有 ID step1 和 step2 的 linearGradient。第一部分 (sec1) 很好,第二部分 (s
我正在尝试使用 Shader 和 LinearGradient 向我的 TextView 中的文本添加线性渐变。仅当我使用 Color.LTGRAY、Color.MAGENTA 等标准颜色时才有效。如
我想在我的 SeekBar 中设置一个带有线性渐变的自定义 drawable 作为栏的背景 drawable。我在以下代码 fragment 的第二条语句中创建了 LinearGradient,并按如
问题:我正在尝试在 SwiftUI 中以矩形呈现对角线线性渐变。 我实现了一个标准的多点线性渐变,它在呈现为正方形时效果很好,但是当我将框架更改为矩形时,它有一些奇怪的行为,看起来更水平,或者有一些奇
我想在自定义形状内绘制渐变。我已使用该属性(property) 填充颜色之前并尝试使用该属性 填充渐变现在。我会说形状很好 - 至少它看起来像预期的 :) 无论如何都不好的是这种渐变的东西。它只是
我是一名优秀的程序员,十分优秀!