Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現可旋轉的ImageView

Android實現可旋轉的ImageView

編輯:關於Android編程

 
 
直接將RefreshProgress添加進xml中當做ImageView就能使用
 
 
package com.example.administrator.superrefresh;
 
 
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
 
 
/**
 * Created by SLY on 2015/9/6.
 */
public class RefreshProgress extends ImageView {
 
    private Matrix m = new Matrix();
    //勻速加速器
    private LinearInterpolator lir = new LinearInterpolator();
    public RefreshProgress(Context context) {
        super(context);
    }
 
    public RefreshProgress(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public void changeAnimation(int num){
        m.reset();
        //
        Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.loading_rotate))
                .getBitmap();
        this.setImageBitmap(bitmap); //顯示圖像
        //
        m.setRotate(num);
        Bitmap newBitmap = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),m,true);
        BitmapDrawable bd = new BitmapDrawable(newBitmap);
        this.setImageDrawable(bd); //顯示新的圖像
 
    }
 
    //控制動畫
    public void Animation(){
        RotateAnimation rotate = new RotateAnimation(0, 720, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        //默認為0,為-1時一直循環動畫
        rotate.setRepeatCount(-1);
        //添加勻速加速器
        rotate.setInterpolator(lir);
        rotate.setDuration(2000);
        rotate.setFillAfter(true);
        this.startAnimation(rotate);
    }
 
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved