rmo*_*h21 3 java android android-layout android-canvas wear-os
我有一个齿轮图像,我想连续旋转固定点.
之前我通过在我的Android类中将图像作为ImageView包含并对其应用RotateAnimation来实现此目的.
@InjectView(R.id.gear00) ImageView gear00;
RotateAnimation ra07 = new RotateAnimation(0, 359, 129, 186);
ra07.setDuration(10000);
ra07.setRepeatCount(RotateAnimation.INFINITE);
ra07.setInterpolator(new LinearInterpolator());
gear00.setAnimation(ra07);
Run Code Online (Sandbox Code Playgroud)基本上,我将ImageView注入到类中并应用旋转动画.
但是,我再也没有使用ImageView的奢侈了.我必须使用Bitmap并在画布上旋转它.
我怎样才能在onDraw()方法中完成我之前正在做的事情,并且在画布上连续旋转固定点的位图?
EDIT1:
我尝试了下面提到的一个建议,我的代码看起来有点像下面的内容
在onCreate()中:
Matrix matrix = new Matrix();
matrix.setRotate(10, 100, 200);
Run Code Online (Sandbox Code Playgroud)
然后在onDraw()中(其中gear00Scaled是要在画布上旋转的位图):
canvas.drawBitmap(gear00Scaled,matrix,new Paint());
我尝试的另一种方法包括保存画布,旋转它,然后恢复它:
canvas.save();
canvas.rotate(10);
canvas.drawBitmap(gear00Scaled,100,200,null);
canvas.restore();
似乎都没有工作!
创建一个XML类(假设:rotate.xml)并将其放在res/anim文件夹中,然后在其中编写以下代码:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:toDegrees="360" />
Run Code Online (Sandbox Code Playgroud)
然后在您的java类中,执行以下操作OnCreate:
final Animation a = AnimationUtils.loadAnimation(CustomActivity.this,
R.anim.rotate);
a.setDuration(3000);
gear00.startAnimation(a);
Run Code Online (Sandbox Code Playgroud)
要么
要使用位图,我希望以下代码序列可以帮助您:
Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, config);
Canvas canvas = new Canvas(targetBitmap);
Matrix matrix = new Matrix();
matrix.setRotate(mRotation,source.getWidth()/2,source.getHeight()/2);
canvas.drawBitmap(source, matrix, new Paint());
Run Code Online (Sandbox Code Playgroud)
如果您从以下方法检查以下方法:
〜框架\基\图形\ java中\机器人\图形\ Bitmap.java
public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height,
Matrix m, boolean filter)
Run Code Online (Sandbox Code Playgroud)
这可以解释它对旋转和翻译的作用.
| 归档时间: |
|
| 查看次数: |
11529 次 |
| 最近记录: |