【转】Android Drawable Resource学习(十一)、RotateDrawable

摘要:
对于另一个可绘制资源,根据当前级别旋转可绘制资源。文件位置:res/drawable/filename xml文件名是资源名。编译后的数据类型是指向RotateDrawable的指针。资源参考:InJava:R.drawbable。filenameInXML:@[package:]drawinable/filename语法:<?xmlversion=“1.0”编码

对另一个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轴的百分比
参考:

示例和解释:

坐标的信息如下:

【转】Android Drawable Resource学习(十一)、RotateDrawable第1张

1、原始图片如下:

【转】Android Drawable Resource学习(十一)、RotateDrawable第2张

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。即如下:

【转】Android Drawable Resource学习(十一)、RotateDrawable第3张

要旋转到的角度如下:

【转】Android Drawable Resource学习(十一)、RotateDrawable第4张

并且是顺时针旋转。

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

免责声明:文章转载自《【转】Android Drawable Resource学习(十一)、RotateDrawable》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS 服务器间文件同步HTTPS学习之教你弄透到底什么是HTTPS下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

转 Android智能手机上捕获数据包

如何在Android智能手机上捕获数据包? 本文由CSDN-蚍蜉撼青松【主页:http://blog.csdn.net/howeverpf】原创,转载请注明出处! 当前Android系统越来越流行,无论是对于安卓应用的开发人员,还是对于网络安全的研究人员,都有可能需要掌握捕获Android应用通信数据包的方法。根据技术手段不同,常用的抓包方法分两类,一类是...

C#实现程序的版本升级更新

我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能。 那么看看我是如何实现程序自动更新的。 直接上代码:   view plaincopy to clipboardprint? using System;   using System.Collections.Generic;   using System.Text;   using ...

友盟+UAPM应用性能报告:Android崩溃率达0.32%,OPPO 、华为、VIVO 崩溃表现良好

​随着信息技术高速发展,移动互联几乎已成为了一种生活方式的代名词,在全民上网的数字热潮中,如何能最大程度保障产品服务的稳定性,提供良好的用户体验,是当前企业都需要思考和亟待解决的问题。App的应用性能稳定是良好用户体验中非常关键的一环,而现实情况却是应用崩溃、卡顿、加载缓慢、页面白屏等问题,频频出现在用户的真实体验之中,成为影响业务表现的直接杀手。为此,应...

利用OpenXml生成Word2007文档

一、OpenXml简介 利用C#生成Word文档并非一定要利用OpenXml技术,至少可以使用微软提供的Office相关组件来编程,不过对于Office2007(确切的说是Word、Excel和PowerPoint2007)及以上版本,微软提供了这些信息组织的另外一种思路:OpenXml技术。         OpenXml是微软office2007及之后...

Android保持屏幕常亮的方法

以前一直使用newWakeLock方法: this.powerManager = (PowerManager) this.getSystemService(Context.POWER_SERVICE); this.wakeLock = this.powerManager.newWakeLock(...

C#操作Xml:通过XmlDocument读写Xml文档

什么是Xml? Xml是扩展标记语言的简写,是一种开发的文本格式。关于它的更多情况可以通过w3组织了解http://www.w3.org/TR/1998/REC-xml-19980210。如果你不知道它,那你就out太多了。 .Net是如何处理Xml的? 1.通过XmlDocument读写Xml文档 2.使用XmlReader读Xml,使用XmlW...