㈠ 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指的是與起始位置的偏移量。
㈡ android canvas的drawText方法 如何設置字體大小和格式。
Canvas相當於畫布,字體的大小格式在Paint上設置才正確, Paint 相當於畫筆。代碼如下,沒有具體參數:
Paint paint = new Paint();
paint.setTextSize(textSize);//設置字體大小
paint.setTypeface(typeface);//設置字體類型
canvas.drawText(text, x, y, paint);//使用畫筆paint
@Override
public void onDraw (Canvas canvas) {
Rect targetRect = new Rect(50, 50, 1000, 200);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStrokeWidth(3);
paint.setTextSize(80);
String testString = "測試:ijkJQKA:1234";
paint.setColor(Color.CYAN);
canvas.drawRect(targetRect, paint);
paint.setColor(Color.RED);
FontMetricsInt fontMetrics = paint.getFontMetricsInt();
(2)androidpaint粗細擴展閱讀:
Screen Space - Camera
此模式類似Screen Space - Overlay,但區別是此模式將Canvas放置於某個Camera前固定距離。此Camera負責渲染所有UI元素,則攝像機參數(Camera Settings)直接影響UI表現。
比如Camera是透視模式(Perspective),則UI元素會基於Field of View的值而扭曲變形。同樣的,若屏幕解析度變更,或者視覺平截體(CameraFrustrum)改變,則Canvas自動調整自身尺寸作自適應。
㈢ android中怎麼設置線條paint粗細百度看見你解決了。求指教!
Paint.setStrokeWidth(X); x可以設置為你想要的寬度,例如5或者6
㈣ android如何實現消除imageview周圍的一圈細細的白邊
在圖片顯示時,圖片空間ImageView居中,並讓四周超出所在的layout一定的長度,這樣就可以將白邊掩蓋掉。
Imageview設置背景圖片時,總會因為圖片的大小與控制項大小不一致的情況,通常的做法是製作png格式的圖片,背景是透明的,如果是其他的如jpg、gif都會有背景,就會出現黑邊、白邊的問題,一般公司開發手機項目,都會有一個專門的美工,提前做好一套png格式的圖標,程序引用就可以。
㈤ android怎麼用paint實現圖像的漸變出現
在android.graphics中提供了有關Gradient字樣的類,例如LinearGradient線性漸變、 RadialGradient徑向漸變和SweepGradient角度漸變三種,他們的基類為android.graphics.Shader。為了演 示圖像漸變效果,下面給出一個簡單的實例。
一、LinearGradient線性漸變
在android平台中提供了兩種重載方式來實例化該類分別為,他們的不同之處為參數中第一種方法可以用顏色數組,和位置來實現更細膩的過渡效果, 比如顏 色采樣int[] colors數組中存放20種顏色,則漸變將會逐一處理。而第二種方法參數僅為起初顏色color0和最終顏色color1。
LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile)
LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile)
使用實例如下:
Paint p=new Paint();
LinearGradient lg=new LinearGradient(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR); //參數一為漸變起初點坐標x位置,參數二為y軸位置,參數三和四分辨對應漸變終點,最後參數為平鋪方式,這里設置為鏡像
剛才已經講到Gradient是基於Shader類,所以我們通過Paint的setShader方法來設置這個漸變,代碼如下:
p.setShader(lg);
canvas.drawCicle(0,0,200,p); //參數3為畫圓的半徑,類型為float型。
二、RadialGradient鏡像漸變
有了上面的基礎,我們一起來了解下徑向漸變。和上面參數唯一不同的是,徑向漸變第三個參數是半徑,其他的和線性漸變相同。
RadialGradient(float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)
RadialGradient(float x, float y, float radius, int color0, int color1, Shader.TileMode tile)
三、SweepGradient角度漸變
對於一些3D立體效果的漸變可以嘗試用角度漸變來完成一個圓錐形,相對來說比上面更簡單,前兩個參數為中心點,然後通過載入的顏色來平均的漸變渲染。
SweepGradient(float cx, float cy, int[] colors, float[] positions) //對於最後一個參數SDK上的描述為May be NULL. The relative position of each corresponding color in the colors array, beginning with 0 and ending with 1.0. If the values are not monotonic, the drawing may proce unexpected results. If positions is NULL, then the colors are automatically spaced evenly.,所以建議使用下面的重載方法,本方法一般為NULL即可。
SweepGradient(float cx, float cy, int color0, int color1)
到此,希望大家對圖像特效處理有了一定的認識,了解這些對打好Android游戲開發的基礎很有好處。
轉載
㈥ android繪制圓角矩形為什麼圓角邊粗了
用shapedrawable畫一個圓角矩形作為按鈕的background,但是圓角的地方總是有點粗,和直接用xml做出來的背景不一樣
float[]
outerR = new float[] { 20f, 20f, 20f, 20f, 0, 0, 0, 0 };
Shape shape = new
RoundRectShape(outerR, null, null);
image.setBackgroundDrawable(new
CustomShapeDrawable(shape,0xffea0000));
class CustomShapeDrawable extends
ShapeDrawable {
int color ;
public CustomShapeDrawable(Shape s,int
color) {
super(s);
this.color =
color;
}
@Override
protected void onDraw(Shape shape, Canvas
canvas, Paint paint) {
paint.setStrokeJoin(Join.ROUND);
paint.setDither(true);
paint.setAntiAlias(true);
paint.setStyle(Style.STROKE);
paint.setColor(0xffea0000);
paint.setStrokeWidth(4f);
shape.draw(canvas, paint);
}
}
把paint.setStrokeJoin這行去掉再試試
㈦ android畫板中的paint
paint對象設置一下抗鋸齒為true看看,方法是setAntialias()
用quadTo()這個方法沒什麼問題
㈧ android中paint如何設置背景圖片
首先paint的作用類似於一個畫筆,你可以設置這個畫筆的粗細,顏色,軌跡的STYLE等等,paint是不能用來設置背景的。
canvas可以理解為一個畫布,你綁定一個畫筆來在這個畫布上作畫,你也可以設置這個畫布的背景,android中canvas畫圖利用的是bitmap,具體你去看看sdk中的canvas。
㈨ Android下通過Canvas類和Paint類畫一個表格的方法的問題
Paint和Canvas類:
Paint:畫筆,使用之前首先要調整好畫筆,然後就可以在畫布上繪圖了,這樣就可以顯示在手機屏幕上。
主要方法有:setColor()
設置畫筆的顏色
setTextSize()
設置字體大小
setStyle()
設置畫筆的風格,空心還是實心
setStrokWidth()
設置空心的邊框寬度
setTextAlign()
設置文字的對齊方式
setTypeface()
設置字體,如粗細、傾斜
在設置畫筆顏色的時候,使用到了Color類,這個類定義了一些顏色常量和顏色轉換。如Color.RED、Color.GRENN等,還可以通過Color類的靜態方法rgb(int,int,int)
來定一個顏色,這三個參數的的值范圍是0~255。
Canvas:是一個畫布,可以在上面畫想要的任何東西,也可以設置畫布的一些的屬性,比如背景顏色,尺寸等。Canvas提供了一下一些方法:
方法:Canvas(),創建一個空的畫布,可以使用setBitmap()方法來設置繪制的具體畫布;
Canvas(Bitmap
bitmap),以bitmap對象創建一個畫布,此時則將內容繪制在bitmap上,bitmap不得為null.
drawColor(),設置畫布的背景顏色。
drawRect(left,top,right,bottom,paint);畫矩形,前四個是float,後一個是Paint類型。
drawLine(startX,startY,stopX,stopY,paint),畫線,前四個參數是float,後一個是Paint類型。
drawText(text,x,y,paint);在畫布上畫指定的文本,x,y兩個參數是float,後一個是Paint類型。