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: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: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显示图片,src是显示不了这样的效果的。

希望本文所述对大家学习Android软件编程有所帮助。

时间: 2024-09-23 07:46:06

Android实现波浪线效果(xml bitmap)的相关文章

Android实现波浪线效果(xml bitmap)_Android

我们要实现的效果如下: 在这之前先带大家了解一下xml bitmap,何为XML Bitmap? XML Bitmap 是一个用XML定义的文件放在资源目录,定义的对象是图片,为bitmap定义别名,这个文件可以给bitmap定义一些额外的属性.例如:抖动. 1.文件存放位置res/drawable/filename.xml 2.语法 <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:andr

android studio如何去掉自己创建的方法名下面的小波浪线?

问题描述 android studio如何去掉自己创建的方法名下面的小波浪线? android studio如何去掉自己创建的方法名下面的小波浪线?怎么去掉小波浪线??看着好不舒服 解决方案 File-->Settings,在左侧面板选择Editor-->Inspections,右侧找到Spelling选项,将其后面复选框的对勾去掉,然后保存即可. 解决方案二: 因为定义了这个方法却没有用到...? 解决方案三: 在这里解决

分享Android仿刮奖效果控件_Android

本文实例为大家分享了Android刮刮卡效果控件,供大家参考,具体内容如下 刮刮卡类: package com.reyo.view; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Paint; import android.gr

Android绚丽加载效果视图(loading)控件

http://www.see-source.com/androidwidget/list.html?type=7 AndroidProgressLayout 可根据加载情况显示提示信息的控件 GoogleProgressBar 用Android实现了google中几种风格的进度条 Titanic 实现动态波浪形动画逐渐填充TextView,可以用在加载 BounceProgressBar 跳跃波浪动画效果的ProgressBar,类似与桌面 CircularProgress 一个模仿androi

Android实现水波纹效果_Android

一.效果   点击开始:   点击停止: 二.在MainActivity中 import android.graphics.Paint; import android.os.Bundle; import android.support.v4.view.animation.LinearOutSlowInInterpolator; import android.support.v7.app.AppCompatActivity; import android.view.View; import and

Android全屏截图的方法,返回Bitmap并且保存在SD卡上

Android全屏截图的方法,返回Bitmap并且保存在SD卡上 今天做分享,需求是截图分享,做了也是一个运动类的产品,那好,我们就直接开始做,考虑了一下,因为是全屏的分享,所有很自然而然的想到了View的getDrawingCache()方法来获取Bitmap,看到网上有人说截取不了WebView上的图片,倒是没有去尝试,因为我们的应用不需要,不过有时间还是要去试试,占占坑,这篇博客只是记录一下知识点,没什么技术含量 我们写个小Sample就好了 activity_main.xml <?xml

Android Button点击效果(按钮背景变色、文字变色)

一. 说明 Android Button的使用过程中,我们会需要为Button添加点击效果,不仅仅按钮的背景色需要变化,而且有时,我们连文字的颜色都希望变化,我们可以使用StateListDrawable资源可以实现. 二. 实现按钮点击的变化 2.1 实现效果: 2.2 我们首先需要定义按钮的背景的资源文件,我们使用图片资源来实现点击变化 selector_btn_click_bg.xml <?xml version="1.0" encoding="utf-8&quo

Android的改进版CoverFlow效果控件

最近研究了一下如何在Android上实现CoverFlow效果的控件,其实早在2010年,就有Neil Davies开发并开源出了这个控件,Neil大神的这篇博客地址http://www.inter-fuser.com/2010/02/android-coverflow-widget-v2.html.首先是阅读源码,弄明白核心思路后,自己重新写了一遍这个控件,并加入了详尽的注释以便日后查阅:而后在使用过程中,发现了有两点可以改进:(1)初始图片位于中间,左边空了一半空间,比较难看,可以改为重复滚

WPS2016段落双波浪线边框如何添加

1.打开WPS文档,选中需要添加双波浪线的边框,然后点击工具栏的"页面布局",然后点击"页面边框" 2.进入"边框和底纹"选项后点击"边框"选项,接着就可以选择边框的线型.颜色.宽度以及其它相关的设置了. 3.我们是要给段落添加双波浪线边框,因此线型就选择双波浪线,颜色根据自己的需求进行修改,设置完毕后点击确认即可. 4.最后我们就可以在文档里看到添加双波浪线后的效果啦