思路原理:
定乙個原點和乙個半徑,圓的四周均勻分布每個選單。為了方便計算,選單的座標用度數表示,然後轉化為極座標計算。定某個點為起始點,根據總選單數確定每個點增加的度數,然後依次確定每個點的度數,也就確定了座標。
源**:
[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...