在Eclipse中android程序项目目录结构下的res文件夹新建drawable文件夹,并在drawable文件夹下新建各类的xml样式文件,供layout文件夹下的xml布局文件引用,以满足对程序界面的需求开发。如图1和图2是drawable下xml样式文件的样式类型。
成都创新互联公司坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十余年网站建设经验成都创新互联公司是成都老牌网站营销服务商,为您提供成都网站设计、成都做网站、网站设计、html5、网站制作、品牌网站设计、小程序定制开发服务,给众多知名企业提供过好品质的建站服务。
图1、drawable下xml样式文件的样式类型(一)
图2、drawable下xml样式文件的样式类型(二)
接下来我们要详细解析以下各类xml样式文件的作用及其使用方法,请点击目录查看相应解析。
2、animation-list
使用animation-list样式可以实现逐帧动画效果,例如WiFi网络信号的强弱表示或者语音聊天声音的强弱表示,分为增强和减弱两种逐帧动画效果。
首先是放置图片素材,如图3所示。将其根据屏幕分辨率大小分别放一套图片到不同屏幕分辨率的drawable文件夹下,android系统会根据机器的屏幕分辨率到相应屏幕分辨率的drawable文件夹里面去找相应的图片素材,以兼容不同屏幕分辨率的安卓机器屏幕。
图3、iv1到iv4
其次是信号增强即图片顺序播放的效果,在drawable下新建animation_list_sequence.xml样式文件。
?xml version="1.0" encoding="utf-8"?!--
根标签为animation-list;
其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画;
其中visible规定drawable的初始可见性,默认为flase;
其中variablePadding若为true则允许drawable的距离在当前选择状态下有所改变(If true, allows the drawable’s padding to change based on the current state that is selected.),默认为false;
根标签下,通过item标签对动画中的每一个图片进行声明;
android:duration 表示展示所用的该图片的时间长度,单位为毫秒;
--animation-list xmlns:android=""
android:oneshot="true"
android:visible="false"
android:variablePadding="false"
item android:drawable="@drawable/iv1" android:duration="200"/item
item android:drawable="@drawable/iv2" android:duration="200"/item
item android:drawable="@drawable/iv3" android:duration="200"/item
item android:drawable="@drawable/iv4" android:duration="200"/item/animation-list1234567891011121314151617181920
再者是信号增强即图片顺序播放的效果,在drawable下新建animation_list_reverse.xml样式文件。
?xml version="1.0" encoding="utf-8"?!--
根标签为animation-list;
其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画;
其中visible规定drawable的初始可见性,默认为flase;
其中variablePadding若为true则允许drawable的距离在当前选择状态下有所改变(If true, allows the drawable’s padding to change based on the current state that is selected.),默认为false;
根标签下,通过item标签对动画中的每一个图片进行声明;
android:duration 表示展示所用的该图片的时间长度,单位为毫秒;
--animation-list xmlns:android=""
android:oneshot="true"
android:visible="false"
android:variablePadding="false"
item android:drawable="@drawable/iv4" android:duration="200"/item
item android:drawable="@drawable/iv3" android:duration="200"/item
item android:drawable="@drawable/iv2" android:duration="200"/item
item android:drawable="@drawable/iv1" android:duration="200"/item/animation-list1234567891011121314151617181920
然后在layout文件夹下新建xml布局文件activity_animation_list.xml,引用上面写好的drawable文件夹下的xml样式文件。
?xml version="1.0" encoding="utf-8"?LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
ImageView android:id="@+id/iv_animation_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/animation_list_sequence" /
Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="sequence"
android:text="顺序显示" /
Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="stop"
android:text="停止动画" /
Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="reverse"
android:text="倒序显示" //LinearLayout12345678910111213141516171819202122232425262728293031
然后在src包下新建Activity的Java文件AnimationListActivity.java,用于演示操作。
package com.zcz.drawablexmltest;import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.view.View;import android.view.Window;import android.widget.ImageView;public class AnimationListActivity extends Activity{
private ImageView mIv;
private AnimationDrawable mAd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_animation_list);
mIv = (ImageView) findViewById(R.id.iv_animation_list);
}
public void sequence(View view){
mIv.setImageResource(R.drawable.animation_list_sequence);
mAd = (AnimationDrawable) mIv.getDrawable();
mAd.start();
} public void stop(View view){
mAd = (AnimationDrawable) mIv.getDrawable();
mAd.stop();
} public void reverse(View view){
mIv.setImageResource(R.drawable.animation_list_reverse);
mAd = (AnimationDrawable) mIv.getDrawable();
mAd.start();
}
}
匹克匹克
PickPik是AI智能分类的无版权图片分享网站。为了获得更好的搜索结果,这个网站中的每张照片都是人工命名的,团队还开发了一个智能AI神经网络,为每张图片赋予审美评分。只有最高评价的图片才会显示在搜索中。
本网站上的所有图像几乎可以用于任何商业设计项目,包括网页设计、应用程序设计、PSD和HTML模板等。博客作者和社交媒体团队可以免费使用这些图片。
2、不飞溅
UnSplash免费高清壁纸分享网是一个坚持每天分享高清摄影图片的网站,每天更新一个高质量的图片素材,都是生活中的风景作品。新鲜的生活图片可以作为桌面壁纸,也可以应用于各种需要的环境。UnSplash网站上的图片又大又清晰,适合各种用途。
3、PixaBay
PixaBay免费高质量图片素材分享网是一家提供无版权图片素材的图片提供商。无论数字还是印刷格式,个人还是商业使用,都可以免费使用本网站的任何图片,没有原作者署名的要求。
同时,Pixabay还推出了手机App找图,支持iOS和Android平台。Pixabay的手机app功能非常简单。你可以把它想象成一个无限的相册,里面有大量的图库素材。刷手机可以快速切换浏览,也可以输入关键词通过搜索找出相关图片。
4、食物喂养
FoodiesFeed免费美食素材分享网是一个提供大量免费高分辨率美食摄影图片的网站,每周至少更新五次。可以下载并用于任何个人或商业目的,类别包括早餐、咖啡、烹饪、水果、主菜、甜点等。
FoodiesFeed材料网站是由23岁的捷克人Jakub创办的。他不仅是一个吃货,还是一个美食摄影师。虽然是个业余爱好者,但不影响他拍摄美食素材,分享给其他用户。用户可以通过电子邮件订阅这个网站的内容,每周都可以获得免费的美食资料。
5、股票快照
StockSnap免费图片素材高清资源库是一个提供高清摄影作品的素材库,可以免费下载使用。提供的资源相当实用。本网站由多名摄影师组成,提供丰富的免费照片,未经授权可随意使用。
StockSnap网站的设计其实很简单。其目的是为寻找美图的用户提供一个完整丰富的图片素材资源库。每天摄影师都会上传发布自己的作品,找出高质量高清晰的照片更新到网站上,让更多的人免费使用。
可以使用Tween动画实现气球上升的效果,具体实现如下:
1:在res目录下新建anim目录,并添加file_name(文件名自定义就好).xml
添加以下代码:
?xml version="1.0" encoding="utf-8"?
translate xmlns:android=""
android:duration="5000"
android:fromXDelta="50"
android:fromYDelta="800"
android:toXDelta="50"
android:fillAfter="true"
android:toYDelta="0"
/translate
注释:
android:duration="5000" // 动画持续时间
android:fromXDelta="50" // 起始x坐标
android:fromYDelta="800"// 起始y坐标
android:toXDelta="50" // 结束x坐标
android:fillAfter="true"// 动画结束后将素材停留在结束位置
android:toYDelta="0" // 结束y坐标
坐标可以通过代码动态进行计算,本例仅仅演示功能...
2:添加一布局文件 test.xml
代码如下
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EFF8FE"
android:orientation="vertical"
ImageView
android:id="@+id/startup"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="6"
android:background="@drawable/ball"
android:scaleType="fitXY" /
RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:orientation="vertical"
TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:text="@string/string_copy_right"
android:textSize="12sp" /
/RelativeLayout
/LinearLayout
效果图如下:
3.创建Activity
public class StartUpActivity extends Activity {
private ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_startup);
// 取得资源
image = (ImageView) findViewById(R.id.startup);
// 设置动画
image.setAnimation(AnimationUtils.loadAnimation(this,
R.anim.translate_sample));
}