一:view.startAnimation(mAnimation);
//1.new TransAimation()
//2.AnimationUtility.Load...(R.an.**).
二:view.setBackgroundDrawable(mAnimationDrawable);
//1.new AnimationDrawable();
//2.mAnimationDrawable=(AnimationDrawable)this.getResources().getDrdawable(R.an.*);
=======================================================================
android与逐帧动画:
效果图:
当我们点击按钮时,该图片会不停的旋转,当再次点击按钮时,会停止在当前的状态。
activity代码:
view plaincopy to clipboardprint?
package cn.com.chenzheng_java.animation;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
/**
* @description android中的逐帧动画.
* 逐帧动画的原理很简单,跟电影的播放一样,一张张类似的图片不停的切换,当切换速度达到一定值时,
* 我们的视觉就会出现残影,残影的出现保证了视觉上变化的连续性,这时候图片的切换看在我们眼中就跟真实的一样了。
* 想使用逐帧动画:
* 第一步:需要在res/drawable文件夹下新建一个xml文件,该文件详细定义了动画播放时所用的图片、切换每张图片
* 所用的时间、是否为连续播放等等.
* 第二步:在代码中,将该动画布局文件,赋值给特定的图片展示控件,如本例子中的ImageView。
* 第三步:通过imageView.getBackGround()获取相应的AnimationDrawable对象,然后通过该对象的方法进行控制动画
* @author chenzheng_java
*
*/
public class Animation1Activity extends Activity {
ImageView imageView ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.animation1);
imageView = (ImageView) findViewById(R.id.imageView_animation1);
imageView.setBackgroundResource(R.drawable.animation1_drawable);
}
public void myClickHandler(View targetButton){
// 获取AnimationDrawable对象
AnimationDrawable animationDrawable = (AnimationDrawable)imageView.getBackground();
// 动画是否正在运行
if(animationDrawable.isRunning()){
//停止动画播放
animationDrawable.stop();
}
else{
//开始或者继续动画播放
animationDrawable.start();
}
}
}
animation1.xml文件:
+ expand sourceview plaincopy to clipboardprint?
<?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">
<Button android:id="@+id/button_animation1" android:text="动画开始"
android:layout_gravity="center_horizontal" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:onClick="myClickHandler"></Button>
<ImageView android:id="@+id/imageView_animation1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1"></ImageView>
</LinearLayout>
存放动画文件的xml文件:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<!--
根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画
根标签下,通过item标签对动画中的每一个图片进行声明
android:duration 表示展示所用的该图片的时间长度
-->
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"
>
<item android:drawable="@drawable/a1" android:duration="50"></item>
<item android:drawable="@drawable/a2" android:duration="50"></item>
<item android:drawable="@drawable/a3" android:duration="50"></item>
<item android:drawable="@drawable/a4" android:duration="50"></item>
<item android:drawable="@drawable/a5" android:duration="50"></item>
<item android:drawable="@drawable/a6" android:duration="50"></item>
</animation-list>
除此之外:在AnimationDrawable中,我们还可以看到如下的几个重要方法:
setOneShot(boolean flag) 和在配置文件中进行配置一样,可以设置动画是否播放一次,false为连续播放;
addFrame (Drawable frame, int duration) 动态的添加一个图片进入该动画中
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chenzheng_java/archive/2011/03/24/6273954.aspx
================================================================
//实例化AnimationDrawable对象
frameAnimation = new AnimationDrawable();
/*装载资源*/
for(int i = 1; i <= 15; i++){
int id = getResources().getIdentifier("a" + i, "drawable", mContext.getPackageName());
Drawable mBitAnimation = getResources().getDrawable(id);
//参数mBitAnimation是该帧的图片
//参数500是该帧显示的时间,按毫秒计算
frameAnimation.addFrame(mBitAnimation, 500);
}
/*上边用到了Resources的getIdentifier方法 方法返回一个资源的唯一标识符,如果没有这个资源就返回0
* 0不是有效的标识符,在说说这个方法几个参数的含义
* 第一个 就是我们的资源名称了。
* 第二个 就是我们要去哪里找我们的资源 我们的图片在drawable 下 所以为drawable
* 第三个 我们用了Context的getPackageName返回应用程序的包名
* */
//设置播放模式是否循环播放,false表示循环,true表示不循环
frameAnimation.setOneShot(false);
//开始播放动画
frameAnimation.start();
很多网友不知道View类提供的setBackgroundDrawable和setBackgroundResource的区别是什么,同时Android View类很多子类比如TextView、ImageView中都有这些方法,同时还有一些类似setImageDrawable、setImageBitmap和setImageResource()这些方法的不同之处。
一、setBackgroundXXX的用处,设置这个View背景。
setBackgroundDrawable 的参数为Drawable对象,
setBackgroundColor 的参数为Color对象,比如说Color.Red为红色,或Color.rgb(255,0,0) 来制定一个红色
setBackgroundResource 的参数为资源ID,比如说R.drawable.icon
二、对于ImageView类有类似 setImageXXX
道理同上,setImageBitmap的参数为Bitmap对象,同时ImageView还支持矩阵对象,比如setImageMatrix的参数为Matrix对象。
三、有关Bitmap和Drawable之间的转换可以查看Android123存档文件 Bitmap和Drawable相互转换方法
"Set LOCAL_MODULE_TAGS to any number of whitespace-separated tags.
This variable controls what build flavors the package gets included
in. For example:
* user: include this in user/userdebug builds
* eng: include this in eng builds
* tests: the target is a testing target and makes it available for
tests
* optional: don't include this"
Are these the same as "variants" and if so, which name would affect
the build and how? I've noticed that everything mentioned in a
product's makefile will always get built. But what gets in the final
system.img not always the same as what gets built.
以下为可能性最大的答案:
就是mk的标记啊,
直接给你上官方的吧
http://android.git.kernel.org/?p=platform/build.git;a=blob_plain;f=core/build-system.html;h=43bae03b6b7b9cba678b86d2faf424fa565497bf;hb=HEAD
user:指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在所有版本下都编译