【问题标题】:How to make a dynamic gradient effect in a dynamically generated view?如何在动态生成的视图中制作动态渐变效果?
【发布时间】:2017-11-28 20:06:26
【问题描述】:

我必须在根据场景动态生成的视图中制作渐变颜色效果,并且视图可以是任何形状(对角线或正方形)

如图所示,渐变效果可以是任何形状。 此外,如果我为每种可能的情况创建自定义视图并使用Visibility,那么我将如何管理这些视图以完美适应每种设备的屏幕尺寸? 只需要一点帮助即可开始。 提前致谢。

【问题讨论】:

  • 应该有强制否定标记回答问题的限制。标记很容易,但提供解决方案并不容易。

标签: android gradient background-color


【解决方案1】:

我已经用这种方法解决了这个问题。

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new CustomView(this));
}

}

现在创建一个CustomView

public class CustomView extends View {
Rect rect;

private Rect rectangle;
private Paint paint;

public CustomView(Context context) {
    super(context);
    int x = 50;
    int y = 50;
    int sideLength = 200;
    int sideLength1 = 100;
    rectangle = new Rect(x, y, sideLength, sideLength1);
    paint = new Paint();
    paint.setColor(Color.GRAY);
}

 @Override
protected void onDraw(Canvas canvas) {

    int width = this.getMeasuredWidth();
    int height = this.getMeasuredHeight();

    BitmapShader shader;
    //shader = new BitmapShader(header, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);

    //paint.setShader(shader);

    Path path = new Path();

    path.moveTo(40,40);
    path.lineTo(5,height/2);
    path.lineTo(width/2,height/4);
    path.lineTo(width/2,0);

    canvas.drawPath(path,paint);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多