下のリンクから、ヘロップでダイヤルを中心に回転させました。
http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/
これで、ダイヤラの横にアイコンが表示され、ダイヤラと一緒に円形のパスでダイヤラを中心に回転させる必要があります。
private void rotateLogo(float degrees){
Matrix nMatrix = new Matrix();
Bitmap peopleOrg = BitmapFactory.decodeResource(getResources(), R.drawable.peoplelogo);
float translateX = dialerWidth / 2 - dialerWidth / 2;
float translateY = dialerHeight / 2 - dialerWidth / 2;
nMatrix.preTranslate(-turntable.getWidth()/2, -turntable.getHeight()/2);
nMatrix.postRotate(degrees, translateX, translateY);
nMatrix.postTranslate(turntable.getWidth()/2, turntable.getHeight()/2);
Bitmap peopleScale = Bitmap.createBitmap(peopleOrg, 0, 0, peopleOrg.getWidth(), peopleOrg.getHeight(), nMatrix, true);
peopleLogo.setImageBitmap(peopleScale);
peopleLogo.setImageMatrix(nMatrix);
}
これにより、画像はダイヤラの中心点を中心にではなく、それ自体の中心を中心に回転します。私はどこが間違っているのかわかりません:(
更新
- 基本的に、ロゴが円形のパスを移動してクリック可能なビューになるようにする必要があります。
- rotateAnimを使用してみましたが、ビューがアニメーション化されず、onclickイベントを取得できません。
- 行列を使用して同じものを回転できるヘルプが必要です