① android中繪制一條圓弧,但是圓弧兩頭要是一個半圓,請問這怎麼做
paint.setStrokeCap(Paint.Cap.ROUND);
② android 怎樣讓畫出的弧形有刻度
public class XChartCalc {
//Position位置
private float posX = 0.0f;
private float posY = 0.0f;
public XChartCalc()
{
}
//依圓心坐標,半徑,扇形角度,計算出扇形終射線與圓弧交叉點的xy坐標
public void CalcArcEndPointXY(float cirX, float cirY, float radius, float cirAngle){
//將角度轉換為弧度
float arcAngle = (float) (Math.PI * cirAngle / 180.0);
if (cirAngle < 90)
{
posX = cirX + (float)(Math.cos(arcAngle)) * radius;
posY = cirY + (float)(Math.sin(arcAngle)) * radius;
}
else if (cirAngle == 90)
{
posX = cirX;
posY = cirY + radius;
}
else if (cirAngle > 90 && cirAngle < 180)
{
arcAngle = (float) (Math.PI * (180 - cirAngle) / 180.0);
posX = cirX - (float)(Math.cos(arcAngle)) * radius;
posY = cirY + (float)(Math.sin(arcAngle)) * radius;
}
else if (cirAngle == 180)
{
posX = cirX - radius;
posY = cirY;
}
else if (cirAngle > 180 && cirAngle < 270)
{
arcAngle = (float) (Math.PI * (cirAngle - 180) / 180.0);
posX = cirX - (float)(Math.cos(arcAngle)) * radius;
posY = cirY - (float)(Math.sin(arcAngle)) * radius;
}
else if (cirAngle == 270)
{
posX = cirX;
posY = cirY - radius;
}
else
{
arcAngle = (float) (Math.PI * (360 - cirAngle) / 180.0);
posX = cirX + (float)(Math.cos(arcAngle)) * radius;
posY = cirY - (float)(Math.sin(arcAngle)) * radius;
}
}
//////////////
public float getPosX() {
return posX;
}
public float getPosY() {
return posY;
}
③ android怎麼設置按鈕弧形
設置按鈕為弧形的話,你可以使用shape.xml,設置四個角的角度,然後就可以顯示弧形,將按鈕的背景設置成shape
④ 求教 Android自定義view畫圓弧的問題
簡單的思路是畫兩個圈 取出圓環,然後設置背景色 根據實際進度進行渲染
下面的鏈接是相關的視頻教程 希望可以幫到你
http://www.cniao5.com/course/10049
⑤ android canvas怎麼畫圓弧
12345
要實現這個方法,我們要傳5個參數進去。
第一個參數:RectF oval
oval 參數的作用是:定義的圓弧的形狀和大小的范圍
/**
* 這是一個居中的圓
*/
float x = (getWidth() - getHeight() / 2) / 2;
float y = getHeight() / 4;
RectF oval = new RectF( x, y,
getWidth() - x, getHeight() - y); 1234567812345678
第二個參數:float startAngle
這個參數的作用是設置圓弧是從哪個角度來順時針繪畫的
canvas.drawArc(oval,-90,120,false,mPaint);11
canvas.drawArc(oval,90,110,false,mPaint);11
//設置為-180的時候也是這樣
canvas.drawArc(oval,180,140,false,mPaint);1212
//設置為360的時候也是這樣
canvas.drawArc(oval,0,140,false,mPaint);1212
第三個參數:float sweepAngle
這個參數的作用是設置圓弧掃過的角度
我們從上面的代碼就可以知道其中的作用了
第四個參數:boolean useCenter
這個參數的作用是設置我們的圓弧在繪畫的時候,是否經過圓形
值得注意的是,這個參數在我們的 mPaint.setStyle(Paint.Style.STROKE); 設置為描邊屬性的時候,是看不出效果的。
/**
*這里我是偷懶了,建議不要在onDraw()方法里初始化對象
*/
Paint p = new Paint();//這個是畫矩形的畫筆,方便大家理解這個圓弧
p.setStyle(Paint.Style.STROKE);
p.setColor(Color.RED);
mPaint.setAntiAlias(true);//取消鋸齒
mPaint.setStyle(Paint.Style.FILL);//設置畫圓弧的畫筆的屬性為描邊(空心),個人喜歡叫它描邊,叫空心有點會引起歧義
mPaint.setStrokeWidth(mCircleWidth);
mPaint.setColor(Color.CYAN);
/**
* 這是一個居中的圓
*/
float x = (getWidth() - getHeight() / 2) / 2;
float y = getHeight() / 4;
RectF oval = new RectF( x, y,
getWidth() - x, getHeight() - y);
canvas.drawArc(oval,360,140,false,mPaint);//畫圓弧,這個時候,繪制沒有經過圓心
canvas.drawRect(oval, p);//畫矩形2223
//當我們設置為true的時候,繪制的時候就經過圓心了
canvas.drawArc(oval,360,140,true,mPaint);1212
第五個參數:Paint paint
這個參數的作用是設置我們的畫筆對象的屬性
mPaint.setAntiAlias(true);//取消鋸齒
mPaint.setStyle(Paint.Style.FILL);//設置畫圓弧的畫筆的屬性為描邊(空心),個人喜歡叫它描邊,叫空心有點會引起歧義
mPaint.setStrokeWidth(mCircleWidth);
mPaint.setColor(Color.CYAN);12341234
這里還是要強調一下,當 p.setStyle(Paint.Style.STROKE)的時候,我們的第四個參數boolean useCenter,是看不到效果的。
下面是代碼全文
public class CustomProgress extends View{
private Paint mPaint;
/**
* 圓的寬度
*/
private int mCircleWidth = 3;
public CustomProgress(Context context) {
this(context, null);
}
public CustomProgress(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CustomProgress(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mPaint = new Paint();
}
@Override
protected void onDraw(Canvas canvas) {
mPaint.setAntiAlias(true);//取消鋸齒
mPaint.setStyle(Paint.Style.FILL);
mPaint.setStrokeWidth(mCircleWidth);
mPaint.setColor(Color.CYAN);
/**
* 這是一個居中的圓
*/
float x = (getWidth() - getHeight() / 2) / 2;
float y = getHeight() / 4;
RectF oval = new RectF( x, y,
getWidth() - x, getHeight() - y);
canvas.drawArc(oval,360,140,true,mPaint);
}
⑥ android如何在布局中吧.9畫成圓弧裝
ndroid畫布(Canvas)之--- 圓環,利用Path切除一個扇形,形成一段圓弧效果 [問題...然後再在剩餘的畫布上畫圓形,那麼自然截取的圖為我上圖中想要達到的...
⑦ 請問android裡面如何實現弧形的gallery
我也在找,找了一個,不過在實現上有問題。大體思路應該是通過改變camera在Z軸上的大小來實現縮放效果,進而實現弧形gallery。參考方法:http://blog.csdn.net/w237or45/article/details/7409807
⑧ android用點畫圓弧
aint.setStrokeCap(Paint.Cap.ROUND);
⑨ android 怎麼畫一個圓弧的正方形
先來介紹一下畫幾何圖形要用到的,畫布(Canvas)、畫筆(Paint)。 1. 畫一個圓使用的是drawCircle:canvas.drawCircle(cx, cy, radius, paint);x、y代表坐標、radius是半徑、paint是畫筆,就是畫圖的顏色; 2. 在畫圖的時候還要有注意,你所畫的矩。可以看看安卓巴士的教程:http://www.apkbus.com/thread-465690-1-1.html
⑩ Android 圓弧選色選大小的控制項如何實現
寫這樣一個demo 太費時了, 單純這樣的界面實現不難,簡單來說 背景可以用圖片代替,顏色按鈕用CheckBox 可以定製圓形的,github有這樣的庫