第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android:如何在中心點上旋轉(zhuǎn)位圖

Android:如何在中心點上旋轉(zhuǎn)位圖

FFIVE 2019-12-12 14:21:23
我一直在尋找解決此問題的解決方案,但是沒有任何幫助,甚至是這里的答案。文檔也沒有解釋任何內(nèi)容。我只是試圖使旋轉(zhuǎn)方向朝另一個對象的方向。問題在于位圖不是圍繞固定點旋轉(zhuǎn),而是圍繞位圖(0,0)旋轉(zhuǎn)。這是我遇到麻煩的代碼:  Matrix mtx = new Matrix();  mtx.reset();  mtx.preTranslate(-centerX, -centerY);  mtx.setRotate((float)direction, -centerX, -centerY);  mtx.postTranslate(pivotX, pivotY);  Bitmap rotatedBMP = Bitmap.createBitmap(bitmap, 0, 0, spriteWidth, spriteHeight, mtx, true);  this.bitmap = rotatedBMP;奇怪的是,無論如何更改pre/中的值postTranslate()以及中的float參數(shù),都沒有關(guān)系setRotation()。有人可以幫忙,把我推向正確的方向嗎?:)
查看完整描述

3 回答

?
嗶嗶one

TA貢獻1854條經(jīng)驗 獲得超8個贊

希望以下代碼序列對您有所幫助:


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());

如果從以下方法檢查以下方法 ~frameworks\base\graphics\java\android\graphics\Bitmap.java


public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height,

        Matrix m, boolean filter)

這將解釋旋轉(zhuǎn)和平移的作用。


查看完整回答
反對 回復(fù) 2019-12-12
?
幕布斯6054654

TA貢獻1876條經(jīng)驗 獲得超7個贊

優(yōu)化代碼。


public static Bitmap RotateBitmap(Bitmap source, float angle)

{

      Matrix matrix = new Matrix();

      matrix.postRotate(angle);

      return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);

}

要從資源獲取位圖:


Bitmap source = BitmapFactory.decodeResource(this.getResources(), R.drawable.your_img);


查看完整回答
反對 回復(fù) 2019-12-12
?
墨色風(fēng)雨

TA貢獻1853條經(jīng)驗 獲得超6個贊

現(xiàn)在我們要完成游戲的設(shè)計,我回到了這個問題,我只是想發(fā)布對我有用的東西。


這是旋轉(zhuǎn)矩陣的方法:


this.matrix.reset();

this.matrix.setTranslate(this.floatXpos, this.floatYpos);

this.matrix.postRotate((float)this.direction, this.getCenterX(), this.getCenterY()); 

(this.getCenterX()基本上是位圖X位置+位圖寬度/ 2)


以及繪制位圖的方法(通過RenderManager類調(diào)用):


canvas.drawBitmap(this.bitmap, this.matrix, null);


因此直截了當(dāng)是棘手的,但我感到有點奇怪,我無法讓它setRotate緊隨其后postTranslate。也許有人知道為什么這行不通?現(xiàn)在所有的位圖都可以正確旋轉(zhuǎn),但是在位圖質(zhì)量上并沒有降低一些:/


無論如何,謝謝您的幫助!


查看完整回答
反對 回復(fù) 2019-12-12
  • 3 回答
  • 0 關(guān)注
  • 881 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號