在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片。 这样就容易使apk变大。

那么除了使用drawable这样的图片外,还有其他方法吗?

本次就谈一下自定义图形shape,Android上支持以下几种属性shape、gradient、stroke、corners、padding、solid等。

先来看两个例子:

效果:

效果:

总结一下Shape的所有子属性,如图:

简单说明一下:

gradient-- 对应颜色渐变。 startcolor、endcolor就不多说了。android:angle 是指从哪个角度开始变。

solid -- 填充。

stroke -- 描边。

corners -- 圆角。

padding -- 定义内容离边界的距离。 与android:padding_left、android:padding_right这些是一个道理。


上面这些不是本讲重点。 本讲的重点是这些xml中属性,与Java类的对应关系, 以及如何使用Java类写出上面一样的效果!

首先来看对应关系:

父节点 shape -- ShapeDrawable

[子节点] gradient --

[子节点]padding --

[子节点]corners -- setCornerRadiussetCornerRadii

[子节点]solid --

[子节点] stroke -- setStroke

[子节点] size -- setSize

发现只有几个是可以对应的~~ 看来通过Java代码来实现上述是行不通的..

暂时研究到这, 如果有实现的朋友,希望可以留言指点,非常感谢。


附件对android.graphics.drawable.Drawable包下的类进行了一下总结。 包括类与XML属性的对应关系。 感觉很不错! 需要的各位可以学习一下。

下载地址: http://download.csdn.net/source/3251635

更多相关文章

  1. 手把手带你搭建 Elasticsearch 集群
  2. android Gallery的学习心得
  3. Android中如何以编程方式(programmatically)载入 NinePatch 图片
  4. 毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHtt
  5. android项目 从eclipse导入Android(安卓)Studio过程问题披露
  6. CropImageView android上的一个图片裁剪控件
  7. android每日一问1【2011-09-06】
  8. android LinearLayout 单击动态改变背景
  9. Android(安卓)Bitmap优化

随机推荐

  1. Tab控件 笔记
  2. Include Native *.so Library in APK Wit
  3. android完全退出程序的方法
  4. MQTT的学习研究(十五) MQTT 和android整合
  5. windows下android 开发环境建立
  6. Android和JS通信方案
  7. [置顶] 我的Android进阶之旅------>Andro
  8. Android官方入门文档[7]样式化操作栏
  9. Android中的Touch事件
  10. Android(安卓)性能测试