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

时间:2014-01-28 00:05:19

标签: android android-layout android-ui

我关注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>

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

2 个答案:

答案 0 :(得分:1)

查看android.graphics.drawable.ShapeDrawable类和Shape类子类,例如:

  • PathShape
  • RectShape
  • ArcShape
  • OvalShape
  • RoundRectShape

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

另外,看看这个小例子:

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

你可以看到一些不同的形状,以及一些像CornerPathEffect那样的效果,

答案 1 :(得分:0)