android 自定義控制項 (圓盤形選單控制項)

2021-06-26 04:54:53 字數 1878 閱讀 9261

思路原理:

定乙個原點和乙個半徑,圓的四周均勻分布每個選單。為了方便計算,選單的座標用度數表示,然後轉化為極座標計算。定某個點為起始點,根據總選單數確定每個點增加的度數,然後依次確定每個點的度數,也就確定了座標。

源**:

[html]view plain

copy

package chroya.demo.roundspin;  

import android.content.context;  

import android.graphics.bitmap;  

import android.graphics.bitmapfactory;  

import android.graphics.canvas;  

import android.graphics.color;  

import android.graphics.paint;  

import android.util.log;  

import android.view.motionevent;  

import android.view.view;  

/**  

*  圓盤式的view    

* @author chroya  

*  */  

public class roundspinview extends view   

/**  

* 初始化每個點  

*/  

private void setupstones()   

}  /**  

* 重新計算每個點的角度  

*/  

private void resetstonesangle(float x, float y)   

}  /**  

*計算每個點的座標  

*/  

private void computecoordinates()   

}  /**  

* 計算每個點的角度  

* @param x  

* @param y  

* @return  

*/  

private int computecurrentangle(float x, float y)   

log.d("roundspinview", "x:"+x+",y:"+y+",degree:"+degree);  

return degree;  

}  @override  

public boolean dispatchtouchevent(motionevent event)   

@override  

public void ondraw(canvas canvas)   

}  /**  

* 中心點放到中心處  

* @param canvas  

* @param bitmap  

* @param left  

* @param top  

*/  

void drawincenter(canvas canvas, bitmap bitmap, float left, float top)      

class bigstone   

}  

自定義元件呼叫:

[html]view plain

copy

public class main extends activity   

}  

效果截圖:

Android 自定義控制項

幹android也有一段的時間了,自定義這塊的東西覺得還是很有比較複習一下基礎的東西。自定義控制項和自定義元件基本上的使用都是在專案中基本的android控制項滿足不了需求的時候使用的。所以,如果要高出特別炫的特效,或者比較特殊的控制項排列方式,例如瀑布流,那麼就要好好學學自定義咯。首先,先簡單的介...

android自定義控制項

android自定義控制項 二 入門,繼承view 說說android 兩種為自定義元件新增屬性的使用方法和區別 自定義控制項的屬性 自定義控制項 今天花了3,4個小時看了自定義控制項,看 懂了,還沒有實踐,因為時間不夠,日後實踐。總結下 自定義控制項有3種方式 繼承已有控制項 繼承乙個容器控制項,...

Android自定義控制項

android學習筆記,整理給自己複習的時候看的,謝謝!1.自定義開關 1.宣告介面物件 public inte ce onswitchstateupdatelistener 2.新增設定介面物件的方法,外部進行呼叫 public void setonswitchstateupdatelistene...