RotateDrawable

来源:互联网 发布:python socket 连接 编辑:程序博客网 时间:2024/05/01 15:27
public class

RotateDrawable

extends DrawableWrapper
java.lang.Object   ↳android.graphics.drawable.Drawable    ↳android.graphics.drawable.DrawableWrapper     ↳android.graphics.drawable.RotateDrawable
<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"      android:drawable="@drawable/image"      android:visible="true"      android:fromDegrees="-90"      android:toDegrees="180"      android:pivotX="50%"      android:pivotY="50%">  </rotate>  

那么图片将从-90到180进行旋转。level值为10000,也就是说level每加1000,即顺时针旋转270/10000*1000=27度。

可以根据显示看出来效果。




private ImageView imageView;private MyHandler handler;private Timer timer;private static class MyHandler extends Handler {WeakReference<ImageView> refImge;WeakReference<Timer> refTimer;public MyHandler(ImageView imageView, Timer timer) {refImge = new WeakReference<ImageView>(imageView);refTimer = new WeakReference<Timer>(timer);}@Overridepublic void handleMessage(Message msg) {if (refImge.get() != null) {Drawable drawable =  refImge.get().getBackground();drawable.setLevel(drawable.getLevel() + 1000);if (drawable.getLevel() >= 10000) {if (refTimer.get() != null) {refTimer.get().cancel();}}}}}@SuppressLint("NewApi")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView = (ImageView) findViewById(R.id.image);Drawable rotateDrawable = getResources().getDrawable(R.drawable.rotate_drawable);if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){imageView.setBackground(rotateDrawable);}else{imageView.setBackgroundDrawable(rotateDrawable);}imageView.post(new Runnable() {@Overridepublic void run() {timer = new Timer();handler = new MyHandler(imageView, timer);timer.schedule(new TimerTask() {public void run() {Message msg = handler.obtainMessage();msg.what = 0x1233;handler.sendMessage(msg);}}, 500,800);}});}@Overrideprotected void onDestroy() {Message msg = handler.obtainMessage();if(msg!=null){handler.removeMessages(msg.what);}super.onDestroy();}








0 0
原创粉丝点击