Android图形系统中形状Drawable使用详解打赏
当你想动态画二维图形,ShapeDrawable对象是可能是你合适的选择.使用ShapeDrawable,你可以随意画出原始的形状并且应用到任何风格.
ShapeDrawable是一个Drawable的派生类,所以你可以用于任何想使用Drawable的地方—比如可能是一个View的背景,通过setBackgroundDrawable()所设置.当然,你也可以把你的形状作为它自己的自定义View绘制,然后以你喜欢的方式添加到你的Layout.因为ShapeDrawable有它自己的draw()方法,你可以创建一个View的子类然后在View.onDraw()的方法中画这个ShapeDrawable.下面是一个简单的View派生类,它仅把ShapeDrawable当作一个View绘出:
[java] public class CustomDrawableView extends View { private ShapeDrawable mDrawable; public CustomDrawableView(Context context) { super(context); int x = 10; int y = 10; int width = 300; int height = 50; mDrawable = new ShapeDrawable(new OvalShape()); mDrawable.getPaint().setColor(0xff74AC23); mDrawable.setBounds(x, y, x + width, y + height); } protected void onDraw(Canvas canvas) { mDrawable.draw(canvas); } } public class CustomDrawableView extends View { private ShapeDrawable mDrawable; public CustomDrawableView(Context context) { super(context); int x = 10; int y = 10; int width = 300; int height = 50; mDrawable = new ShapeDrawable(new OvalShape()); mDrawable.getPaint().setColor(0xff74AC23); mDrawable.setBounds(x, y, x + width, y + height); } protected void onDraw(Canvas canvas) { mDrawable.draw(canvas); } }
在构造函数中,以OvalShape定义了一个ShapeDrawable.然后给它设置了颜色和形状的边界.如果你不设置边界,形状是不会被画出的,如果你不设置颜色,将以黑色画之.
使用自定义View,你可以画任何东西.在上面的例子中,我们可以在一个Activity中用程序随意作画:
[java] CustomDrawableView mCustomDrawableView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCustomDrawableView = new CustomDrawableView(this); setContentView(mCustomDrawableView); } CustomDrawableView mCustomDrawableView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCustomDrawableView = new CustomDrawableView(this); setContentView(mCustomDrawableView); }
如果你想在XMLlayout中画这个自定义drawable而不是在Activity中,那么这个CustomDrawableView类必须重写View(Context,AttributeSet)构造方法,此方法在从XML初始化一个View时被调用.然后添加一个CustomDrawable元素到XML,像这样:
[html] <com.example.shapedrawable.CustomDrawableView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<com.example.shapedrawable.CustomDrawableView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
ShapeDrawable类(就像android.graphics.drawable包中的其它一些Drawable类型)允许你使用公开方法来定义drawable的各种属性.你要调整的一些属性可能有alpha透明,颜色过虑,抖动,opacity和color等.
- 固定链接:https://www.poorren.com/android-shape-drawable-use
- 文章标签:android,ShapeDrawable,使用,形状
- 扫二维码:Android图形系统中形状Drawable使用详解
- 版权所有:除"转载分享"分类外,未经注明,均为原创、整理,转载请注明出处。
学习了,给朋友看看
什么时候你的名字显示正常了我就告诉你。
什么时候你的名字显示正常了我就告诉你。
欢迎常来
欢迎常来
博客很有特色,看了博文很有收获。我是高压泵WordPress博客,欢迎来访、留言留网址,我必寻网址再次回访!谢谢!
这个不错啊
是我浏览器出问题了吗,怎么看起来像你自己在回复一样,头像都一个样
这个貌似是多说的头像设置的。我昨天无意间设置了自己的头像,其实是默认头像。
已经好几次过来看你写的文章,都很不错。
文章分析的相当透彻,有机会多多交流。网络营销论坛http://92tui.com/
都是英文看不懂http://www.ra0077.com/a/weibobocai/2012/0609/182.html
楼主,你的主题很不错,是在哪里找的~
第一次来支持你。
非常喜欢博主的文章。。。。欢迎回访
楼主辛苦了 写这么好的文章给大家普及知识,呵呵
非常喜欢博主的文章。。。。欢迎回访
我来看看了。