0
我得到了一張太陽圖片,860x860像素。 我想以錨點爲中心旋轉太陽。 這是我走到這一步:使用矩陣旋轉位圖後的比例和保持比例
class GraphicalMenu extends View{
int screenH;
int screenW;
int angle;
Bitmap sun, monster;
public GraphicalMenu(Context context){
super(context);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
sun = BitmapFactory.decodeResource(getResources(),R.drawable.sun,options);
monster = BitmapFactory.decodeResource(getResources(),R.drawable.monster,options);
}
@Override
public void onSizeChanged (int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
screenH = h;
screenW = w;
sun = Bitmap.createScaledBitmap(sun, w, h, true);
monster = Bitmap.createScaledBitmap(monster, w, h, true);
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
//Increase rotating angle.
if (angle++ >360)
angle =0;
Matrix matrix = new Matrix();
matrix.setRotate(angle , getWidth()/2, getHeight()/2);
canvas.drawBitmap(sun, matrix, new Paint());
//Call the next frame.
canvas.drawBitmap(monster,0 , 0, null);
invalidate();
}
}
我試圖改變這一行:
sun = Bitmap.createScaledBitmap(sun, w, h, true);
到:
sun = Bitmap.createScaledBitmap(sun, h, h, true);
但隨後太陽留下的中心屏幕並向遠處旋轉到右側。 如何讓太陽適應屏幕? 我怎樣才能保持它的比例?
編輯 從我的N5和太陽圖片上運行它的截圖。
我設置畫布: \t \t GraphicalMenu gm = new GraphicalMenu(this); \t \t setContentView(gm);所以它覆蓋了整個屏幕。所以寬度和高度應該是正確的。我還更新了照片,希望能夠更容易理解我想實現的目標。 :) –