Android Drawable Resource学习(十一)、RotateDrawable
2015-07-25 07:36
405 查看
对另一个drawable资源,基于当前的level,进行旋转的drawable。
文件位置:
文件名即资源名编译数据类型:
指向
In XML:
元素:
<rotate>
定义一个RotateDrawable,必须作为根元素。
属性:
Drawable 资源。必须的。引用一个drawable资源。
参考:
示例和解释:
坐标的信息如下:
1、原始图片如下:
2、在 scale.xml文件中定义如下:
[java] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/image02"
android:visible="true"
android:fromDegrees="-90"
android:toDegrees="180"
android:pivotX="50%"
android:pivotY="50%">
</rotate>
那么,图片的初始角度为-90。即如下:
要旋转到的角度如下:
并且是顺时针旋转。
3、那么图片将从-90到180进行旋转。level值为10000,也就是说level每加1000,即顺时针旋转270/10000*1000=27度。
可以根据显示看出来效果。
[java] view
plaincopy
public class MainActivity extends Activity{
RotateDrawable rotateDrawable;
int level=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView=(ImageView)findViewById(R.id.imgView);
rotateDrawable=(RotateDrawable)imageView.getDrawable();
thread.start();
}
Thread thread=new Thread(new Runnable() {
public void run() {
while (level<=10000) {
handler.sendEmptyMessage(0x00);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
Handler handler=new Handler(){
public void handleMessage(Message msg) {
Toast.makeText(MainActivity.this, level+"", 500).show();
rotateDrawable.setLevel(level);
level+=1000;
};
};
}
文件位置:
res/drawable/filename.xml
文件名即资源名编译数据类型:
指向
RotateDrawable的指针。资源引用:In Java:
R.drawable.filename
In XML:
@[package:]drawable/filename语法:
<span class="pun"><?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"utf-8"</span><span class="pun">?></span><span class="pln"> </span><span class="tag"><</span>rotate<span class="pln"> </span><span class="atn">xmlns:android</span><span class="pun">=</span><span class="atv">"http://schemas.android.com/apk/res/android"</span><span class="pln"> </span>android:drawable="" android:visible="" android:fromDegrees="" android:toDegrees="" android:pivotX="" android:pivotY=""<span class="pln"></span><span class="tag">/></span>
元素:
<rotate>
定义一个RotateDrawable,必须作为根元素。
属性:
xmlns:androidString类型。 必须的。定义XML文件的命名空间。必须是
"http://schemas.android.com/apk/res/android".
android:drawable
Drawable 资源。必须的。引用一个drawable资源。
android:visibleBoolean。是否可见。
android:fromDegrees整形。 从多少的角度开始旋转
android:toDegrees整形。 到多少的角度结束旋转
android:pivotX百分比。 旋转的中心在图片X轴的百分比
android:visible百分比。 旋转的中心在图片Y轴的百分比
参考:
ScaleDrawable
示例和解释:
坐标的信息如下:
1、原始图片如下:
2、在 scale.xml文件中定义如下:
[java] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/image02"
android:visible="true"
android:fromDegrees="-90"
android:toDegrees="180"
android:pivotX="50%"
android:pivotY="50%">
</rotate>
那么,图片的初始角度为-90。即如下:
要旋转到的角度如下:
并且是顺时针旋转。
3、那么图片将从-90到180进行旋转。level值为10000,也就是说level每加1000,即顺时针旋转270/10000*1000=27度。
可以根据显示看出来效果。
[java] view
plaincopy
public class MainActivity extends Activity{
RotateDrawable rotateDrawable;
int level=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView=(ImageView)findViewById(R.id.imgView);
rotateDrawable=(RotateDrawable)imageView.getDrawable();
thread.start();
}
Thread thread=new Thread(new Runnable() {
public void run() {
while (level<=10000) {
handler.sendEmptyMessage(0x00);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
Handler handler=new Handler(){
public void handleMessage(Message msg) {
Toast.makeText(MainActivity.this, level+"", 500).show();
rotateDrawable.setLevel(level);
level+=1000;
};
};
}
相关文章推荐
- Android Drawable Resource学习(十)、ScaleDrawable
- Android Drawable Resource学习(九)、ClipDrawable
- Android Drawable Resource学习(八)、InsetDrawable
- Android Drawable Resource学习(七)、TransitionDrawable
- Android Drawable Resource学习(六)、LevelListDrawable
- Android Drawable Resource学习(五)、StateListDrawable
- Android Drawable Resource学习(四)、LayerDrawable
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android Api Demos登顶之路(四)
- Android Drawable Resource学习(二)、BitmapDrawable和Bitmap
- Android Drawable Resource学习(一)、Drawable Resource简介
- android Graphics(四):canvas变换与操作
- android Graphics(三):区域(Range)
- android Graphics(三):区域(Range)
- android Graphics(二):路径及文字
- android Graphics(一):概述及基本几何图形绘制
- android 概述 及四大组件
- Android个人错误笔记
- 关于android dropbox API的几点学习
- Android ListView美化