zoukankan      html  css  js  c++  java
  • 【转】Android Drawable Resource学习(十一)、RotateDrawable

    对另一个drawable资源,基于当前的level,进行旋转的drawable。

    文件位置:
    res/drawable/filename.xml
    文件名即资源名
    编译数据类型:
    指向 RotateDrawable的指针。
    资源引用:
    In Java: R.drawable.filename
    In XML: @[package:]drawable/filename
    语法:
    <?xml version="1.0" encoding="utf-8"?>
    <rotate
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable=""
        android:visible=""
        android:fromDegrees=""
        android:toDegrees=""
        android:pivotX=""
        android:pivotY=""/>

    元素:

    <rotate>

    定义一个RotateDrawable,必须作为根元素。

    属性:

    xmlns:android
    String类型。 必须的。定义XML文件的命名空间。必须是 "http://schemas.android.com/apk/res/android".
    android:drawable

    Drawable 资源。必须的。引用一个drawable资源。

    android:visible
    Boolean。是否可见。
    android:fromDegrees
    整形。  从多少的角度开始旋转
    android:toDegrees
    整形。  到多少的角度结束旋转
    android:pivotX
    百分比。  旋转的中心在图片X轴的百分比
    android:visible
    百分比。  旋转的中心在图片Y轴的百分比
    参考:

    示例和解释:

    坐标的信息如下:

    1、原始图片如下:

    2、在 scale.xml文件中定义如下:

    [java] view plain copy
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <rotate xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:drawable="@drawable/image02"  
    4.     android:visible="true"  
    5.     android:fromDegrees="-90"  
    6.     android:toDegrees="180"  
    7.     android:pivotX="50%"  
    8.     android:pivotY="50%">  
    9. </rotate>  

    那么,图片的初始角度为-90。即如下:

    要旋转到的角度如下:

    并且是顺时针旋转。

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

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

    [java] view plain copy
     
      1. public class MainActivity extends Activity{  
      2.     RotateDrawable rotateDrawable;  
      3.     int level=0;  
      4.     @Override  
      5.     protected void onCreate(Bundle savedInstanceState) {  
      6.         super.onCreate(savedInstanceState);  
      7.         setContentView(R.layout.activity_main);  
      8.         ImageView imageView=(ImageView)findViewById(R.id.imgView);  
      9.          rotateDrawable=(RotateDrawable)imageView.getDrawable();  
      10.          thread.start();  
      11.     }  
      12.       
      13.     Thread thread=new Thread(new Runnable() {  
      14.         public void run() {  
      15.             while (level<=10000) {  
      16.                   handler.sendEmptyMessage(0x00);  
      17.                 try {  
      18.                     Thread.sleep(2000);  
      19.                 } catch (InterruptedException e) {  
      20.                     e.printStackTrace();  
      21.                 }  
      22.             }  
      23.         }  
      24.     });  
      25.       
      26.     Handler handler=new Handler(){  
      27.         public void handleMessage(Message msg) {  
      28.             Toast.makeText(MainActivity.this, level+"", 500).show();  
      29.             rotateDrawable.setLevel(level);  
      30.             level+=1000;  
      31.         };  
      32.     };  
      33. }  
        1. from:http://blog.csdn.net/lonelyroamer/article/details/8252533
  • 相关阅读:
    leetcode-654-最大二叉树
    leetcode-46-全排列
    图片懒加载?
    HTTP常见的状态码?
    线程与进程的区别?
    网页从输入网址到渲染完成经历了哪些过程?
    网页前端性能优化的方式有哪些?
    常见的浏览器内核有哪些?
    汇编语言--cpu的工作原理(寄存器)--手稿
    对于 vue3.0 特性你有什么了解的吗?
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/5422432.html
Copyright © 2011-2022 走看看