android - 如何在 Java 代码中创建具有实体、角、笔划的形状?

标签 android shapedrawable

我在下面的 xml 文件中定义了一个形状,现在我想以编程方式更改为纯色。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#DFDFE0" />

    <corners
        android:bottomLeftRadius="8dp"
        android:bottomRightRadius="8dp"
        android:topLeftRadius="8dp"
        android:topRightRadius="8dp" />

    <stroke
        android:width="3dp"
        android:color="#2E3135" />

</shape>

我认为我应该有一个扩展 ShapeDrawable 并实现 onDraw 方法的类。有人知道怎么做吗?

最佳答案

终于搞定了!

// prepare
int strokeWidth = 5; // 5px not dp
int roundRadius = 15; // 15px not dp
int strokeColor = Color.parseColor("#2E3135");
int fillColor = Color.parseColor("#DFDFE0");

GradientDrawable gd = new GradientDrawable();
gd.setColor(fillColor);
gd.setCornerRadius(roundRadius);
gd.setStroke(strokeWidth, strokeColor);

关于android - 如何在 Java 代码中创建具有实体、角、笔划的形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17667964/

相关文章:

android - WebView setJavaScriptEnabled 和 JavaScript 现场

android - 在 android 中读取 EditText 的文本

java - Eclipse 错误 - Java 已启动但返回退出代码 =13

android - 布局设置错误

android - 以编程方式更改可绘制形状的颜色

android - 在 Android 4.0.3 上流式传输 m3u8 播放列表

安卓。 ShapeDrawable 和 GradientDrawable 有什么区别?

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

android - 为什么在布局背景中设置可绘制形状会被警告?

android - 如何设置形状可绘制渐变中心的绝对(不是 %)位置?