A. android中使用paint怎麼畫虛線
Paint paint = new Paint ( ) ;
paint.setColor ( Color.BLACK ) ;
//設置畫直線格式
paint.setStyle ( Paint.Style.STROKE ) ;
//設置虛線效果
paint.setPathEffect ( new DashPathEffect ( new float [ ] { 3, 2 }, 0 ) ) ;
最後這句是設置虛線效果,里邊的float數組的意思是:先畫長度為3的實線,再間隔長度為2的空白,之後一直重復這個單元。這個數組的長度只要大於等於2就行,你可以設置多個數值,產生不同效果,最後這個0指的是與起始位置的偏移量。
B. 如何在Android中使用虛線
android開發中虛線的用法:
一、自己創建模式,一個點一個點的繪制。
二、用Android提供的 DashPathEffect 類來創建模式繪制。
下面我要演示的就是第二種方法,用Android提供給我的API來繪制。
由於是開發項目的一個小塊,下面只能給出部分截圖:
下面看一下核心繪圖代碼:
public void draw(Canvas mcanvas) {
GameLog.log(Tag, "draw");
Paint mLinePaint = new Paint();
mLinePaint.setColor(Color.WHITE);
mLinePaint.setStyle(Paint.Style.STROKE);
//繪制模式
PathEffect effect = new DashPathEffect(new float[] { 1, 2, 4, 8}, 1);
mLinePaint.setAntiAlias(true);
mLinePaint.setPathEffect(effect);
mLinePaint.setStrokeWidth(4);
if (GameManager.getState() == GameManager.GameStart) {
GameLog.log(Tag, "GameStart");
float[] oldPts = getPts(mOldPoints);
mCanvas.drawLines(oldPts, mLinePaint);
prepareLinesData();
float[] newPts = getPts(mNewPoints);
mCanvas.drawLines(newPts, mLinePaint);
}
}
簡單介紹下 PathEffect類:
PathEffect是用來控制繪制輪廓(線條)的方式。
PathEffect對於繪制Path基本圖形特別有用,但是它們也可以應用到任何Paint中從而影響線條繪制的方式。
使用PathEffect,可以改變一個形狀的邊角的外觀並且控制輪廓的外表。
Android包含了多個PathEffect,包括:
CornerPathEffect 可以使用圓角來代替尖銳唯如蠢的角從而對基本圖形的形狀尖銳的邊角進行平橡鋒滑。
DashPathEffect 可以使用DashPathEffect來創建一個虛線的輪廓(短橫線/小圓點),而不是使用實線。你還可以指定任意的虛/實線段的重復模式。
DiscretePathEffect 與DashPathEffect相似,但是添加了隨機性。當繪制它的時候,需要指定每一段的長度和與原始路徑的偏離度。
PathDashPathEffect 這種效果可以定義一個新的形狀(路徑)並將其用作原始路徑的輪廓標記。
下面的效果可以在一個Paint中組合使用多個Path Effect。
SumPathEffect 順序地在一條路徑中添加兩種效果,這樣每一指陪種效果都可以應用到原始路徑中,而且兩種結果可以結合起來。
ComposePathEffect 將兩種效果組合起來應用,先使用第一種效果,然後在這種效果的基礎上應用第二種效果。
對象形狀的PathEffect的改變會影響到形狀的區域。這就能夠保證應用到相同形狀的填充效果將會繪制到新的邊界中。
C. Android Studio編程語句提示的錯誤,怎麼解決,雖然有虛線,但是沒有影響項目的運行
解決方法:
1、你的項目中res\drawable下存在大寫字母,將項目中對應的大寫字母改為小寫字母即可
D. Android 文字左邊虛線
方式:
###第一種是通過寫shape布局文件來實現給TextView設置background時引用此布局文件即可實現效果,shape布局文件代碼如下:
stroke標簽下為虛線框的主要設置,dashGap表示中間隔開一段距離,即定義了樣式為虛線,效果圖如下:
###第二種方式是通過自定義View使之繼承View,然後在onDraw方法中將虛線和文字用Paint畫筆畫出。
主要代碼如下:
public class DashedSurroundTextView extends View {
/
mTextColor 文字顏色 mBorderColor 虛線邊界顏色 mBorderWidth虛線邊界寬度
mTextSizen 文字大小 mText 文字內容
/
private int mTextColor;
private int mBorderColor;
private float mBorderWidth;
private float mTextSize;
private String mText;
private float start_x = 0;
private float start_y = 0;
private float padding = 5;
private float baseLineLong = 10;
private float radiusX = 20;
private float radiusY = 20;
...
public DashedSurroundTextView(Context context, AttributeSet attrs) {
super(context, attrs);
//獲取自定義參數
TypedArray typedArray = context.obtainStyledAttributes(attrs,
R.styleable.DashedSurroundTextView);
//虛線border顏色
mBorderColor = typedArray.getColor(R.styleable.DashedSurroundTextView_border_color, Color.argb(0, 0, 0, 0));
//虛線border寬度
mBorderWidth = typedArray.getDimension(R.styleable.DashedSurroundTextView_border_width, 0);
//字體顏色
mTextColor = typedArray.getColor(R.styleable.DashedSurroundTextView_textColor, Color.argb(0, 0, 0, 0));
//字體大小
mTextSize = typedArray.getDimension(R.styleable.DashedSurroundTextView_textSize, 0);
//顯示文字
mText = typedArray.getString(R.styleable.DashedSurroundTextView_text);
}
E. android 如何設置listview的分割線為虛線
樓主,你的這個問題我遇到過,並且用另一種方式解決了。
首先告訴你,listview的分割線不能設置為虛線,你也知道關於它的兩個屬性:
android:divider="#FFCC00"(或者android:divider="@color/divider_color")
android:dividerHeight="4px"
一個是設置顏色,一個是設置高度。沒法設置為虛線。
---------------------------
我的做法是這樣的!比較暴力,但能解決問題。
讓美工給你做一個虛線的圖!保存為 xuxian.png
然後再用android:divider="@drawable/xuxian",把它設置為這個圖。看上去就是個虛線了。至於效果,讓美工和你一起再慢慢細調。
結論是:很絕望。目前只有這一個辦法,可以解決你的問題。
手動打字,非ctrl+c / ctrl+v之流。但願能幫到你