繁体   English   中英

如何在Android中以编程方式创建形状

[英]How can I programmatically create a shape in Android

我关注了myRec.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape>
            <corners android:radius="1dp"
                android:bottomRightRadius="0dp"
                android:bottomLeftRadius="4dp"
                android:topLeftRadius="4dp"
                android:topRightRadius="0dp"/>
            <stroke 
                android:color="@color/my_button_border"
                android:width="1dp" />
            <solid android:color="@android:color/transparent" />
        </shape>
     </item>
</selector>

....并希望以编程方式创建相同的形状,以便我可以在运行时自由更改颜色。 我该如何实现? 提前非常感谢

看一下android.graphics.drawable.ShapeDrawable类和Shape类的子类,例如:

  • PathShape
  • RectShape
  • ArcShape
  • 椭圆形
  • RoundRectShape

ShapeDrawable在构造函数中接收一个形状,然后您就有很多函数可以修改形状。 另外,您可以检索与ShapeDrawable相关的Paint,以便可以更改颜色等内容。

另外, 看看这个小例子:

http://www.edumobile.org/android/android-tutorial/shape-drawing-example-in-android/

在这里您可以看到一些不同的形状以及一些效果,例如CornerPathEffect,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM