样式,主题和动画

原创 2015年07月08日 11:06:31

样式---------定义在values种的style.xml里,和主题不同,样式的作用范围主要是在控件上,旨在抽出不同布局里不同控件相同风格的一组属性。


主题-------主要是写在清单文件里,有基于应用的,也有基于Activity的,包括一些背景色和是否全屏等等,具体可以看系统SDK的platforms下的value文件夹下。


动画分为几种


帧动画,首先创建一个xml文件gril.xml,添加节点

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:oneshot="false"
    >
    <item
        android:drawable="@drawable/girl_1"
        android:duration="200"/>
    <item
        android:drawable="@drawable/girl_2"
        android:duration="200"/>
    <item
        android:drawable="@drawable/girl_3"
        android:duration="200"/>


</animation-list>
oneshot 设置成true就是只播放一次,false循环播放



activity里代码如下

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		iv = (ImageView) findViewById(R.id.iv);
		// 把xml文件的动画资源设置为iv背景
		iv.setBackgroundResource(R.drawable.girl);
		// 获取设置的动画资源。 执行可能需要花费一定的时间
		mAnimationDrawable = (AnimationDrawable) iv.getBackground();
		
	}

	public boolean onTouchEvent(MotionEvent event) {
		if (event.getAction() == MotionEvent.ACTION_DOWN) {
			mAnimationDrawable.start();
			return true;
		}
		return super.onTouchEvent(event);
	}


补间动画

旋转,位移,缩放,透明度动画



//透明度动画
	public void alpha(View view){
		AlphaAnimation  aa = new AlphaAnimation(0.0f, 1.0f);      //完全透明-》完全不透明
		aa.setDuration(2000);  //播放时间
		aa.setRepeatCount(1);  //重复次数1,共播放2次,-1代表无限次,永远不停
		aa.setRepeatMode(Animation.REVERSE);   //重复类型,逆序
		aa.setFillAfter(true);  //是否还原
		iv.startAnimation(aa); 
	}
	//位移动画
	public void trans(View view){
		TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -0.5f, 
				Animation.RELATIVE_TO_PARENT, 0.5f, 
				Animation.RELATIVE_TO_PARENT, 0.0f, 
				Animation.RELATIVE_TO_PARENT, 0.0f);  //开始类型(相对父亲或相对自己),x轴开始点,x轴结束点
		ta.setDuration(2000);
		ta.setRepeatCount(1);
		ta.setRepeatMode(Animation.REVERSE);
		iv.startAnimation(ta);
	}


	//缩放动画
	public void scale(View view){
		ScaleAnimation sa = new ScaleAnimation(0.1f, 2.0f, 0.1f, 2.0f, Animation.RELATIVE_TO_SELF, 
				0.5f, Animation.RELATIVE_TO_SELF, 0.5f);    //开始x,缩放后x,开始y,缩放后y,相对自己,自己中心点,相对自己,0.5y就是自己的中心点
		sa.setDuration(2000);
		sa.setRepeatCount(1);
		sa.setRepeatMode(Animation.REVERSE);
		iv.startAnimation(sa);
	}
	
	//旋转动画
	public void rotate(View view){
		RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF,
				0.0f, Animation.RELATIVE_TO_SELF, 0.0f);   //相对于自己的左上角转360度
		ra.setDuration(2000);
		ra.setRepeatCount(1);
		ra.setRepeatMode(Animation.REVERSE);
		iv.startAnimation(ra);
	}



	//动画组合
	public void set(View view){
		AnimationSet set = new AnimationSet(false);
		TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -0.5f, 
				Animation.RELATIVE_TO_PARENT, 0.5f, 
				Animation.RELATIVE_TO_PARENT, -0.5f, 
				Animation.RELATIVE_TO_PARENT, 0.5f);
		ta.setDuration(2000);
		ta.setRepeatCount(1);
		ta.setRepeatMode(Animation.REVERSE);
		ScaleAnimation sa = new ScaleAnimation(0.1f, 2.0f, 0.1f, 2.0f, Animation.RELATIVE_TO_SELF, 
				0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
		sa.setDuration(2000);
		sa.setRepeatCount(1);
		sa.setRepeatMode(Animation.REVERSE);
		RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF,
				0.0f, Animation.RELATIVE_TO_SELF, 0.0f);
		ra.setDuration(2000);
		ra.setRepeatCount(1);
		ra.setRepeatMode(Animation.REVERSE);
		set.addAnimation(ra);
		//set.addAnimation(ta);
		set.addAnimation(sa);
		iv.startAnimation(set);
	}

组合的时候就放在set集合里,开始的false代表自顾自得速度。

代码也可以用xml文件来定义,

这样就可以直接用AnimationUtils.loadAnimation(Context,R.anim.xx);

Android 、样式和主题的区别

很多人开发Android有一段时间,对样式和主题可能还是理解的不太清楚,最近在看官方文档稍微整理一下样式和主题的区别 样式(Style):可以理解成是针对View或者窗口(Window)设置...
  • ahou2468
  • ahou2468
  • 2018年01月03日 21:42
  • 90

Android开发入门:样式和主题(Styles and Themes)

这篇文章是官方文档的翻译和笔记。对应于官方文档的develop--API Guides--User Interface--Styles and Themes 文章结构: 0. 样式和主题 1. 定义样...
  • shimachao
  • shimachao
  • 2014年03月22日 21:08
  • 2554

Android中的样式和主题(Styles and Themes)

样式(style),是为一个视图(View)或窗体(window)指定形状和格式的属性集。一个样式能够指定的属性包括高度、内边距、字体颜色、字体大小、背景颜色等等。样式被定义在一个XML资源文件中,跟...
  • Geek_Geek
  • Geek_Geek
  • 2015年08月16日 20:45
  • 3225

【Android 基础】利用主题Theme自定义Activity切换动画

先介绍一般常见的设置Activity切换动画的方法:需求:当向左滑动Activity的时候,下一个Activity从右边进来 在res下新建anim文件夹,然后在里面建立base_slide_rema...
  • leaf_130
  • leaf_130
  • 2016年10月09日 19:02
  • 1338

Android主题和样式之系统篇(上级)

原网址:http://www.cnblogs.com/qianxudetianxia/p/3725466.html 【基于最新的Android4.4的源码分析】 每家公司或者每...
  • sinat_35845281
  • sinat_35845281
  • 2016年09月22日 14:07
  • 321

Android之如何自定义样式和主题

样式:对某个组件起作用 主题:对整个应用程序或某个Activity起作用 样式: 例: 在values/style.xml中定义 普通定义:         @colo...
  • wei_chong_chong
  • wei_chong_chong
  • 2015年08月12日 09:01
  • 789

[1] Word样式/主题/模板

如何排版排版的步骤如下所示: 页面设置,纸张方向,大小,页眉页脚的位置,页边距等等 创建样式,字符和段落格式的集合 录入内容,录入文字,图片,表格,一边录入一边套用样式 图标排版,图表自动编号,以及各...
  • yangfeng2014
  • yangfeng2014
  • 2016年04月11日 16:16
  • 505

idea主题样式

http://www.riaway.com/ https://jingyan.baidu.com/article/c910274b80af45cd361d2db6.html
  • weixin_33400820
  • weixin_33400820
  • 2018年01月16日 14:10
  • 61

android studio 导入主题设置,代码风格(附带eclipse 主题代码样式)

在这里我最想说的,android studio默认主题样式,太low。不适合长时间写代码,看代码颜色不好识别,相对于背景的代码样式,我都不想吐槽了。还是网上下载主题代码样式导入样式。主题代码样式网站:...
  • qq_16064871
  • qq_16064871
  • 2017年01月21日 13:44
  • 4790

eclipse设置经典黑色主题样式

第一步、设置黑色框架 Window—> Preferences—> General—> Apperance选择主题为Dark,确认 第二步设置文字样式 方法一:Window -> Preference...
  • cyn_653620
  • cyn_653620
  • 2017年05月04日 22:34
  • 2534
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:样式,主题和动画
举报原因:
原因补充:

(最多只允许输入30个字)