Android Drawable - Bitmap Drawable使用详解(附图)
2016-05-18 00:08
881 查看
Bitmap Drawable分两种, 一种图片文件表示; 另一种是XML文件表示
资源放置位置:
Eclipse: res/drawable/filename.png(.png/.jpg/.gif)
AS: res/mipmap/filename.png(.png/.jpg/.gif) (PS: 放置在drawable也能用, 建议是: 可以用, 但不建议这么用)
引用用法:
In java: R.drawable.filename
In XML: @drawable/filename 或@mipmap/filename
例如:
资源放置位置:
Eclipse/AS: res/drawable/filename.xml
引用用法:
In java: R.drawable.filename
In XML: @drawable/filename 或@mipmap/filename
PS: XML文件最外层的标签必须是bitmap
例如:
整理完这段的时候: 我想说, 好多没什么卵用
下面开始详细的它属性的意义及效果:
src: 图片资源;
float: 图片透明度, float浮点类型, 取值是0.0~1.0之间, 默认是1.0;
antialias: 是否开启抗锯齿, 就是图片显示的时候, 边缘会像锯齿一样. 这个默认值是false建议开启;
dither: 是否开启抖动效果, 当图片的像素配置和手机屏幕的像素配置不一致时, 开启这个选项可以让搞质量的图片在低质量的屏幕上能保持很好的显示效果,%#$%@巴拉巴拉, 最后, 建议开启;
filter: 是否开启过滤效果. % 没什么卵用, 开启;
gravity: 是指定图片放置在容器中的位置, 取值有: [“top” | “bottom” | “left” | “right” | “center_vertical” | “fill_vertical” | “center_horizontal” | “fill_horizontal” | “center” | “fill” | “clip_vertical” | “clip_horizontal”], 设置多个用”|”隔开;
top: 不该变图片的大小, 将图片放在容器顶部;
bottom: 不该变图片的大小, 将图片放在容器底部;
left: 不该变图片的大小, 将图片放在容器左边;
right: 不该变图片的大小, 将图片放在容器右边;
center: 不该变图片的大小, 将图片放在容器中间;
center_vertical: 不改变图片的大小, 将图片放在容器竖直方向的中间;
center_horizontal: 不改变图片的大小, 将图片放在容器水平方向的中间;
fill_vertical: 在竖直方向, 把图片拉伸至整个容器;
fill_horizontal: 在水平方向, 把图片拉伸至整个容器;
fill: 在竖直和水平方向, 把图片拉伸至整个容器;
clip_vertical: 附加选项, 表示竖直方向的裁剪;
clip_horizontal: 附加选项, 表示水平方向的裁剪;
还有start和end, 效果start和left是一样, end是和right一样, 只是写法不一样;
![](http://img.blog.csdn.net/20160517232043052)
![](http://img.blog.csdn.net/20160517233217911)
第一张图片XML布局代码:
第二张图片XML布局代码:
bitmapdrawable.xml代码
mipMap: Enables or disables the mipmap hint, 默认是false, 不知道干嘛的
tileMode: 平铺模式, 取值有: [“disabled” | “clamp” | “repeat” | “mirror”] 默认是disabled, 不平铺显示, 设置这个除disabled值之外, 会使上面的gravity属性无效;
![](http://img.blog.csdn.net/20160517235003112)
XML布局代码:
bitmapdrawable.xml代码
tileModeX/tileModeY: 就是指定了平铺的方向, 是水平还是竖直方向, 会覆盖上面的tileMode属性
tint/tintMode: 是Android 5.0出来的属性, 放到另外的地方, 到时候写完贴在这里
先说用图片文件表示:
现在一共支持三种格式的图片: .png/.jpg/.gif资源放置位置:
Eclipse: res/drawable/filename.png(.png/.jpg/.gif)
AS: res/mipmap/filename.png(.png/.jpg/.gif) (PS: 放置在drawable也能用, 建议是: 可以用, 但不建议这么用)
引用用法:
In java: R.drawable.filename
In XML: @drawable/filename 或@mipmap/filename
例如:
Drawable drawable = getResources().getDrawable(R.drawable.myimage);
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/myimage" />
再来说用XML来表示
用XML文件加一个图片资源文件来表示资源放置位置:
Eclipse/AS: res/drawable/filename.xml
引用用法:
In java: R.drawable.filename
In XML: @drawable/filename 或@mipmap/filename
PS: XML文件最外层的标签必须是bitmap
例如:
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@[package:]drawable/drawable_resource" android:alpha="float" android:antialias=["true" | "false"] android:dither=["true" | "false"] android:filter=["true" | "false"] android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" | "fill_vertical" | "center_horizontal" | "fill_horizontal" | "center" | "fill" | "clip_vertical" | "clip_horizontal"] android:mipMap=["true" | "false"] android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] android:tileModeX=["disabled" | "clamp" | "repeat" | "mirror"] android:tileModeY=["disabled" | "clamp" | "repeat" | "mirror"] android:tint="color" android:tintModeY=["add" | "multiply" | "screen" | "src_atop" | "src_in" | "src_over"] />
<!--add, multiply, screen, src_atop, src_in, src_over-->
整理完这段的时候: 我想说, 好多没什么卵用
下面开始详细的它属性的意义及效果:
src: 图片资源;
float: 图片透明度, float浮点类型, 取值是0.0~1.0之间, 默认是1.0;
antialias: 是否开启抗锯齿, 就是图片显示的时候, 边缘会像锯齿一样. 这个默认值是false建议开启;
dither: 是否开启抖动效果, 当图片的像素配置和手机屏幕的像素配置不一致时, 开启这个选项可以让搞质量的图片在低质量的屏幕上能保持很好的显示效果,%#$%@巴拉巴拉, 最后, 建议开启;
filter: 是否开启过滤效果. % 没什么卵用, 开启;
gravity: 是指定图片放置在容器中的位置, 取值有: [“top” | “bottom” | “left” | “right” | “center_vertical” | “fill_vertical” | “center_horizontal” | “fill_horizontal” | “center” | “fill” | “clip_vertical” | “clip_horizontal”], 设置多个用”|”隔开;
top: 不该变图片的大小, 将图片放在容器顶部;
bottom: 不该变图片的大小, 将图片放在容器底部;
left: 不该变图片的大小, 将图片放在容器左边;
right: 不该变图片的大小, 将图片放在容器右边;
center: 不该变图片的大小, 将图片放在容器中间;
center_vertical: 不改变图片的大小, 将图片放在容器竖直方向的中间;
center_horizontal: 不改变图片的大小, 将图片放在容器水平方向的中间;
fill_vertical: 在竖直方向, 把图片拉伸至整个容器;
fill_horizontal: 在水平方向, 把图片拉伸至整个容器;
fill: 在竖直和水平方向, 把图片拉伸至整个容器;
clip_vertical: 附加选项, 表示竖直方向的裁剪;
clip_horizontal: 附加选项, 表示水平方向的裁剪;
还有start和end, 效果start和left是一样, end是和right一样, 只是写法不一样;
第一张图片XML布局代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--top--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_top" android:text="Top"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--Left--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_left" android:text="Left"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--Right--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_right" android:text="Right"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--Botton--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_bottom" android:text="Botton"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--Start--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_start" android:text="Start"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--End--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_end" android:text="End"/> </LinearLayout>
第二张图片XML布局代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--fill--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_fill" android:text="fill"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--fill_horizontal--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_fill_horizontal" android:text="fill_horizontal"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--fill_vertical--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_fill_vertical" android:text="fill_vertical"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--center--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_center" android:text="center"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--center_horizontal--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_center_horizontal" android:text="center_horizontal"/> <View android:layout_width="match_parent" android:layout_height="1dip" android:background="@android:color/black"/> <!--center_vertical--> <TextView android:layout_width="match_parent" android:layout_height="80dip" android:background="@drawable/bitmapdrawable_center_vertical" android:text="center_vertical"/> </LinearLayout>
bitmapdrawable.xml代码
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:alpha="1" android:antialias="true" android:autoMirrored="true" android:dither="true" android:filter="true" android:gravity="top" android:mipMap="false" android:src="@mipmap/img2"/> <!--其它的xml都一样 只是单独改变了gravity的参数-->
mipMap: Enables or disables the mipmap hint, 默认是false, 不知道干嘛的
tileMode: 平铺模式, 取值有: [“disabled” | “clamp” | “repeat” | “mirror”] 默认是disabled, 不平铺显示, 设置这个除disabled值之外, 会使上面的gravity属性无效;
XML布局代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--disabled--> <TextView android:layout_width="match_parent" android:layout_height="100dip" android:background="@drawable/bitmapdrawable_disabled" android:text="disabled"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="clamp"/> <!--clamp--> <TextView android:layout_width="match_parent" android:layout_height="100dip" android:background="@drawable/bitmapdrawable_clamp"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="repeat"/> <!--repeat--> <TextView android:layout_width="match_parent" android:layout_height="100dip" android:background="@drawable/bitmapdrawable_repeat"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="mirror"/> <!--mirror--> <TextView android:layout_width="match_parent" android:layout_height="100dip" android:background="@drawable/bitmapdrawable_mirror"/> </LinearLayout>
bitmapdrawable.xml代码
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:alpha="1" android:antialias="true" android:autoMirrored="true" android:dither="true" android:filter="true" android:gravity="top" android:mipMap="false" android:src="@mipmap/img2" android:tileMode="disabled"/> <!--其它xml都一样 只是单独改变了tileMode的参数-->
tileModeX/tileModeY: 就是指定了平铺的方向, 是水平还是竖直方向, 会覆盖上面的tileMode属性
tint/tintMode: 是Android 5.0出来的属性, 放到另外的地方, 到时候写完贴在这里
相关文章推荐
- Oracle索引(B*tree与Bitmap)的学习总结
- 如何使用Matrix对bitmap的旋转与镜像水平垂直翻转
- C语言实现的bitmap位图代码分享
- C++中Cbitmap,HBitmap,Bitmap区别及联系
- bitmap 索引和 B-tree 索引在使用中如何选择
- Android编程中TextView宽度过大导致Drawable无法居中问题解决方法
- Android中的Bitmap缓存池使用详解
- 详解Android中Drawable方法
- Android开发使用Drawable绘制圆角与圆形图案功能示例
- Android Bitmap和Drawable相互转换的简单代码
- android中Bitmap用法(显示,保存,缩放,旋转)实例分析
- Android App开发中将View或Drawable转为Bitmap的方法
- Android编程实现擦除Bitmap中某一块的方法
- Android编程实现在Bitmap上涂鸦效果
- Android中把bitmap存成BMP格式图片的方法
- Android实现EditText中添加和删除bitmap的方法
- Android中Bitmap用法实例分析
- Android利用BitMap获得图片像素数据的方法
- 解析Android开发优化之:对Bitmap的内存优化详解
- Android View转成Bitmap