全屏显示. Tween动画

Android全屏与Tween动画
本文介绍了如何在Android应用中实现全屏显示,并详细讲解了Tween动画的基本使用方法,包括Alpha、Rotate、Scale和Translate等动画类型。
1. 全屏显示 
1.1 在Java代码中设置
//设置为无标题栏	
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置为全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//设置为横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.main);
1.2 在AndroidManifest.xml中设置
在<application>中设置程序的主题:
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" 

1.3  当我们玩手机时,会自动变换横屏.竖屏,这个也很简单.
在AndroidManifest.xml中修改
<activity android:name=".Activity01" android:label="@string/app_name" android:screenOrientation="sensor">
即可实现.

2. Tween 动画

Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。

第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。

 下面就讲一下Tweene Animations。

 主要类: 

Animation   动画

AlphaAnimation 渐变透明度

RotateAnimation 画面旋转

ScaleAnimation 渐变尺寸缩放

TranslateAnimation 位置移动

AnimationSet  动画集

源代码:TweenAnim.java
public class TweenAnim extends View {        
    //Alpha动画 - 渐变透明度  
    private Animation alphaAnimation = null;  
      
    //Sacle动画 - 渐变尺寸缩放  
    private Animation scaleAnimation = null;  
      
    //Translate动画 - 位置移动  
    private Animation translateAnimation = null;  
      
    //Rotate动画 - 画面旋转  
    private Animation rotateAnimation = null;  
      
    public TweenAnim(Context context) {  
        super(context);  
    }  
    @Override  
    protected void onDraw(Canvas canvas) {  
        super.onDraw(canvas);  
        Log.e("Tween", "onDraw");  
        //加载一个图片  
        canvas.drawBitmap(((BitmapDrawable)getResources().getDrawable(R.drawable.gallery_photo_5)).getBitmap(), 0, 0, null);  
    }  
    @Override  
    public boolean onKeyDown(int keyCode, KeyEvent event) {  
        Log.e("Tween", "onKeyDown");  
        return true;  
    }  
    @Override  
    public boolean onKeyUp(int keyCode, KeyEvent event) {  
        Log.e("Tween", "onKeyDown");  
        switch (keyCode) {  
            case KeyEvent.KEYCODE_DPAD_UP:  
                Log.e("Tween", "onKeyDown - KEYCODE_DPAD_UP");  
                alphaAnimation = new AlphaAnimation(0.1f, 1.0f);  
                //设置动画时间  
                alphaAnimation.setDuration(3000);  
                this.startAnimation(alphaAnimation);  
                break;  
            case KeyEvent.KEYCODE_DPAD_DOWN:  
                Log.e("Tween", "onKeyDown - KEYCODE_DPAD_DOWN");  
                rotateAnimation = new RotateAnimation(0f, 360f);  
                rotateAnimation.setDuration(1000);  
                this.startAnimation(rotateAnimation);  
                break;  
            case KeyEvent.KEYCODE_DPAD_LEFT:  
                Log.e("Tween", "onKeyDown - KEYCODE_DPAD_LEFT");  
                //初始化  
                scaleAnimation = new ScaleAnimation(0.1f, 1.0f,0.1f,1.0f);  
                //设置动画时间  
                scaleAnimation.setDuration(500);  
                this.startAnimation(scaleAnimation);  
                break;  
            case KeyEvent.KEYCODE_DPAD_RIGHT:  
                Log.e("Tween", "onKeyDown - KEYCODE_DPAD_RIGHT");  
                //初始化  
                translateAnimation = new TranslateAnimation(0.1f, 100.0f,0.1f,100.0f);  
                //设置动画时间  
                translateAnimation.setDuration(1000);  
                  
                this.startAnimation(translateAnimation);  
                break;  
            case KeyEvent.KEYCODE_DPAD_CENTER:  
                Log.e("Tween", "onKeyDown - KEYCODE_DPAD_CENTER");  
                //初始化 Translate动画  
                translateAnimation = new TranslateAnimation(0.1f, 100.0f,0.1f,100.0f);  
                //初始化 Alpha动画  
                alphaAnimation = new AlphaAnimation(0.1f, 1.0f);  
                  
                //动画集  
                AnimationSet set = new AnimationSet(true);  
                set.addAnimation(translateAnimation);  
                set.addAnimation(alphaAnimation);  
                  
                //设置动画时间 (作用到每个动画)  
                set.setDuration(1000);  
                this.startAnimation(set);  
                break;  
            default:  
                break;  
        }  
        return true;  
    }        
}  

在Activity中调用该类时,需要注意一定setFocusable(true), 否则焦点在Activity上的话,onKeyUp方法是不会生效的。

调用该View的代码:

anim.setFocusable(true);  
setContentView(new TweenAnim(this)); 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值