Android实现波浪线效果(xml bitmap)
我们要实现的效果如下:
在这之前先带大家了解一下xml bitmap,何为XML Bitmap?
XML Bitmap 是一个用XML定义的文件放在资源目录,定义的对象是图片,为bitmap定义别名,这个文件可以给bitmap定义一些额外的属性。例如:抖动。
1、文件存放位置
res/drawable/filename.xml
2、语法
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:class="lazy" data-src="@[package:]drawable/drawable_resource"
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:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
例子:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<!-- 与默认情况(@drawable/btn_default_pressed_holo_light)有差别 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/bm"
android:text="sssssssssssssssssss" />
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<!-- 与默认情况(@drawable/btn_default_pressed_holo_light)有差别 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/bm"
android:text="sssssssssssssssssss" />
</RelativeLayout>
效果图:
默认(@drawable/btn_default_pressed_holo_light):
引用(\@drawable/bm):
从截图上就可以看出来差别。
titileMode="repeat":
之后找了一些关于实现波浪线的方法,总感觉不大满意,常见的方法分享给大家:
1、直接搞一个这样的波浪线的切图
这种方式最简单,但是劣势也非常明显,如果view的宽度过大,则会出现图片变形,如下图所示:
如果过小则如下:
要求不高的话,这样勉强可以蒙混过关,但是追求完美的话,这样的效果显然很不给力
2、自定义控件绘制
这个方法的确可以达到不错的效果,但是实现比较麻烦。我也看到有朋友搞过,
3、用xml的bitmap标签实现波浪线效果
首页要搞一个周期的波浪线,即包括波峰和波谷,如下图所示:
wave_item:
然后水平方向上平铺,从而实现波浪线效果,代码如下:
wave.xml:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:antialias="true"
android:class="lazy" data-src="@drawable/wave_item"
android:tileMode="repeat" />
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/wave" />
</LinearLayout>
注意:这个ImageView通过background显示图片,class="lazy" data-src是显示不了这样的效果的。
希望本文所述对大家学习Android软件编程有所帮助。
您可能感兴趣的文章:Android Activity之间传递图片(Bitmap)的方法android保存Bitmap图片到指定文件夹示例Android截取视频帧并转化为Bitmap示例android中Bitmap的放大和缩小实例代码解析Android开发优化之:对Bitmap的内存优化详解Android读取本地或网络图片并转换为Bitmapandroid通过bitmap生成新图片关键性代码Android中使用Bitmap类将矩形图片转为圆形的方法Android canvas drawBitmap方法详解及实例Android App开发中将View或Drawable转为Bitmap的方法android中Bitmap用法(显示,保存,缩放,旋转)实例分析Android开发实现去除bitmap无用白色边框的方法示例
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341