中的按鈕(或內部文本)我必須通過編碼隨機程度旋轉按鈕(或內部文本,它是相同的)。是否有任何button.setRotate(x)在API級別低於11?旋轉代碼
旋轉代碼
回答
好的,看一看,答案是:這很複雜。
您可以使用舊的動畫框架來旋轉按鈕,例如,像這樣:
Button button = (Button) findViewById(R.id.button);
// rotation from 0 to 90 degrees here
RotateAnimation a = new RotateAnimation(0, 90);
a.setFillAfter(true);
a.setDuration(0);
button.startAnimation(a);
這裏的問題是,按鈕看起來旋轉,但無法正確點擊。觸發單擊事件的座標是按鈕在旋轉前的區域的座標。
由於這不是一個很好的解決方案,所以最好的辦法是編寫一個自定義視圖來擴展Button類並旋轉onDraw()
中的按鈕畫布。在這種情況下,您還必須覆蓋onMeasure()
。請參閱Custom Components瞭解如何操作。
除此之外,您可以嘗試從按鈕父級佈局中截取點擊事件,並在點擊發生在按鈕當前座標內時觸發適當的事件。這雖然有些「哈克」。
!我的按鈕是方形的,所以它可以工作。 – 2011-12-21 22:42:43
將動畫信息添加到動畫的中心,這是完美的!謝謝 RotateAnimation a = new RotateAnimation(0,90,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); – 2011-12-22 07:37:23
請即刻新的Android開發,你能告訴我如何擴展按鈕類,其旋轉代碼? – Mehdi 2012-06-22 15:20:42
這個問題有什麼問題? – 2011-12-21 12:03:04
它沒有顯示研究工作。打開Button類文檔,使用瀏覽器的搜索功能,並在搜索字段中輸入「rotation」,你會明白我的意思。 – 2011-12-21 12:13:13
我搜索了很多,但大多數問題都是關於通過按下按鈕旋轉圖像..不旋轉按鈕本身。 在文檔中,我發現只有「setRotation(float)= VIEW的旋轉度數」.. 我不知道如何實現旋轉按鈕。 button.setRotate(x)不起作用。 – 2011-12-21 12:32:09