私が作業しているアプリにコンパスを作成する必要があります。だから私はCompassViewという新しいビューを作成しようとしました。基本的にimageviewを拡張し、東西北の南を指し示すビットマップを表示し、センサを使って電話機が指し示す度合いを見つけ出し、それに応じてイメージを回転させます実際のコンパス。しかし、問題は、45度のような角度に画像を回転しようとすると、縮むことです。それをより良く説明するためにいくつかの画像があります。Androidで縮小せずに画像を回転する
あなたが見ることができるように私はそれが何をしたいの周りに45何回転しようとすると、第2の画像がダウン縮めているこのです:ここでは
です私が現在使っているコード:
Bitmap bMap = BitmapFactory.decodeResource(getResources(),
R.drawable.compass);
Matrix xMatrix = new Matrix();
xMatrix.reset();
xMatrix.postRotate(360-mValue, 75, 75); //This is 75 because 150 is the image width
Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0,
bMap.getWidth(), bMap.getHeight(), xMatrix, true);
setImageBitmap(bMapRotate);
助けを借りればいいですated。 THanks
編集:(解決策) 私は最終的に受け入れられた答えのおかげで働いています。ここで私はそれが働いた方法を知りたい人のために使っていたコードは次のとおりです。
RotateAnimation rAnimAntiClockWise = new RotateAnimation(
360 - mValue, 360 - event.values[0],
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
//mValue is the angle in degrees and i subtracted it from 360 to make it anticlockwise, and event.values[0] is the same thing as mValue
rAnimAntiClockWise.setFillAfter(true);
rAnimAntiClockWise.setInterpolator(new LinearInterpolator());
rAnimAntiClockWise.setDuration(0);
startAnimation(rAnimAntiClockWise);
感謝をキャンバスとカスタムビューに新しいですので、それらを実装する方法を知りませんでした回転アニメーションから。私はちょうどそれが働くようにコードのいくつかの部分を修正する必要があった – KSubedi