android畫矩形
1. Android開發如何通過觸摸動態地在屏幕上畫矩形
一兩句話很難詳細描述明白,弄懂以下兩項就能解決。
1、搞懂onTouch事件,這個回調可以監聽到觸摸的坐標。
2、搞懂android繪圖基礎。
2. Android:如下關於繪制圓角矩形邊框問題,怎麼解決
paint.setAntiAlias(true);
嘗試在畫筆上設置抗鋸齒
3. Android如何畫圓角矩形
建立 rect_gray.xml文件放在drawable文件夾下面。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充顏色 -->
<solid android:color="#FFFFFF"></solid>
<!-- 線的寬度,顏色灰色 -->
<stroke android:width="1dp" android:color="#D5D5D5"></stroke>
<!-- 矩形的圓角半徑 -->
<corners android:radius="0dp" />
</shape>
然後在布局的xml裡面:
作為ImageView或者Linearlayout等作為背景源就可以了。
<LinearLayout
android:id="@+id/activity_myhezu_wantchuzu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/myhezu_dottedline_rect_green"
android:orientation="horizontal" >
4. android裡面如何填充矩形呢
方案:
在canvas上畫矩形,然後設置畫筆為實心就可以了。
代碼示例:
java">paint.setStyle(Style.FILL);//實心矩形框
paint.setColor(Color.RED);//顏色為紅色
canvas.drawRect(newRectF(10,10,300,100),paint);//畫一個290*90的紅色實心矩形
5. 怎麼用Android畫一個正方形
先來介紹一下畫幾何圖形要用到的,畫布(Canvas)、畫筆(Paint)。
1. 畫一個圓使用的是drawCircle:canvas.drawCircle(cx, cy, radius, paint);x、y代表坐標、radius是半徑、paint是畫筆,就是畫圖的顏色;
2. 在畫圖的時候還要有注意,你所畫的矩形是實心(paint.setStyle(Paint.Style.FILL))還是空心(paint.setStyle(Paint.Style.STROKE);
畫圖的時候還有一點,那就是消除鋸齒:paint.setAntiAlias(true);
3. 還有就是設置一種漸變顏色的矩形:
Shader mShader = new LinearGradient(0,0,100,100, new int[]{Color.RED,Color.GREEn,Color.BLUE,Color.YELLO},null,Shader.TileMode.REPEAT);
ShapeDrawable sd;
//畫一個實心正方形
sd = new ShapeDrawable(new RectShape());
sd.setBounds(20,20,100,100);
sd.draw(canvas);
//一個漸變色的正方形就完成了
4. 正方形:drawRect:canvas.drawRect(left, top, right, bottom, paint)
這里的left、top、right、bottom的值是:
left:是矩形距離左邊的X軸
top:是矩形距離上邊的Y軸
right:是矩形距離右邊的X軸
bottom:是矩形距離下邊的Y軸
5. 長方形:他和正方形是一個原理,這個就不用說了
6. 橢圓形:記住,這里的Rectf是float類型的
RectF re = new Rect(left, top, right, bottom);
canvas.drawOval(re,paint);
好了,說了這么多的的東西,那就讓我們來看一下真正的實例吧!!!
package com.hades.game;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
public class CanvasActivity extends Activity {
/**
* 畫一個幾何圖形
* hades
* 藍色著衣
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView myView = new MyView(this);
setContentView(myView);
}
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 設置畫布的背景顏色
canvas.drawColor(Color.WHITE);
/**
* 定義矩形為空心
*/
// 定義畫筆1
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
// 消除鋸齒
paint.setAntiAlias(true);
// 設置畫筆的顏色
paint.setColor(Color.RED);
// 設置paint的外框寬度
paint.setStrokeWidth(2);
// 畫一個圓
canvas.drawCircle(40, 30, 20, paint);
// 畫一個正放形
canvas.drawRect(20, 70, 70, 120, paint);
// 畫一個長方形
canvas.drawRect(20, 170, 90, 130, paint);
// 畫一個橢圓
RectF re = new RectF(20, 230, 100, 190);
canvas.drawOval(re, paint);
/**
* 定義矩形為實心
*/
paint.setStyle(Paint.Style.FILL);
// 定義畫筆2
Paint paint2 = new Paint();
// 消除鋸齒
paint2.setAntiAlias(true);
// 設置畫筆的顏色
paint2.setColor(Color.BLUE);
// 畫一個空心圓
canvas.drawCircle(150, 30, 20, paint2);
// 畫一個正方形
canvas.drawRect(185, 70, 130, 120, paint2);
// 畫一個長方形
canvas.drawRect(200, 130, 130, 180, paint2);
// 畫一個橢圓形
RectF re2 = new RectF(200, 230, 130, 190);
canvas.drawOval(re2, paint2);
}
}
}
6. android 我用一張圖片做畫布,要在這張圖片上畫三個矩形 可是卻只畫出一個矩形
你的方法不對,drawRect(left, top, right, bottom, paint) 這個方法本來就是畫矩形的,其中上下左右四個坐標點代表它的四個頂點。
7. 如何使用 Photoshop CS5 繪制一個 Android 矩形圖標
使用PS創建安卓圖標
1.創建畫板,500*500像素,解析度72,參數如下圖。
8. android怎麼畫圓角的矩形
如果你是在自定義view的onDraw方法中:
RectFrectF=newRectF(100,100,500,500);//先畫一個矩形
Paintpaint=newPaint(Paint.ANTI_ALIAS_FLAG);//創建畫筆
paint.setColor(R.color.colorAccent);//添加畫筆顏色
canvas.drawRoundRect(rectF,30,30,paint);//根據提供的矩形為四個角畫弧線,(其中的數字:第一個表示X軸方向大小,第二個Y軸方向大小。可以改成其他的,你可以自己體驗),最後添加畫筆。
如果你是在布局中直接添加,樓上已經做出方法,我就不舉例了。
9. android繪圖之Canvas基礎(2)
Canvas畫布,用於繪制出各種形狀配合畫布的變幻操作可以繪制出很多復雜圖形,基本的繪制圖形分類。
提供的繪制函數:
上面四個函數都可以繪制canvas的背景,注意到PorterDuff.Mode變數,它只對兩個canvas繪制bitmap起作用,所以此處暫時不討論mode參數(沒有設置mode默認使用srcover porterff mode)。
Rect 和RectF都是提供一個矩形局域。
(1)精度不一樣,Rect是使用int類型作為數值,RectF是使用float類型作為數值。
(2)兩個類型提供的方法也不是完全一致。
**
rect:RectF對象,一個矩形區域。
rx:x方向上的圓角半徑。
ry:y方向上的圓角半徑。
paint:繪制時所使用的畫筆。**
**
cx 圓心x
cy 圓心y
radius半徑**
需要一個Path,代表路徑後面會講解。
繪制線的集合,參數中pts是點的集合,兩個值代表一個點,四個值代表一條線,互相之間不連接。
offset跳過的點,count跳過之後要繪制的點的總數,可以用於集合中部分點的繪制。
跳過部分節點:
沒有跳過點
RectF oval:生成弧的矩形,中心為弧的圓心
float startAngle:弧開始的角度,以X軸正方向為0度,順時針
float sweepAngle:弧持續的角度
boolean useCenter:是否有弧的兩邊,True,還兩邊,False,只有一條弧
在矩形框內畫一個橢圓,如果是個正方形會畫出一個圓。
canvas.drawPoint();
canvas.drawPoints();
**
只需要提供兩個點一個坐標就可以繪制點。
canvas.drawPoint(20,20,mPaint);
float[] points = {30,40,40,50,60,60};
canvas.drawPoints(points,mPaint);**
這幾種方法類似:
canvas.drawText("好好學習,天天向上",100,100,mPaint);
drawTextOnPath
沿著一條 Path 來繪制文字
text 為所需要繪制的文字
path 為文字的路徑
hOffset 文字相對於路徑的水平偏移量,用於調整文字的位置
vOffset 文字相對於路徑豎直偏移量,用於調整文字的位置
值得注意的是,在繪制 Path 的時候,應該在拐彎處使用圓角,這樣文字顯示時更舒服
大致講解,後面會重點講解。
Rect src
Rect dst
其中src和dst這兩個矩形區域是用來做什麼的?
Rect src:指定繪制圖片的區域
Rect dst或RectF dst:指定圖片在屏幕上的繪制(顯示)區域
首先指定圖片區域,然後指定繪制圖片的區域。
android繪圖之Paint(1)
android繪圖之Canvas基礎(2)
Android繪圖之Path(3)
Android繪圖之drawText繪制文本相關(4)
Android繪圖之Canvas概念理解(5)
Android繪圖之Canvas變換(6)
Android繪圖之Canvas狀態保存和恢復(7)
Android繪圖之PathEffect (8)
Android繪圖之LinearGradient線性漸變(9)
Android繪圖之SweepGradient(10)
Android繪圖之RadialGradient 放射漸變(11)
Android繪制之BitmapShader(12)
Android繪圖之ComposeShader,PorterDuff.mode及Xfermode(13)
Android繪圖之drawText,getTextBounds,measureText,FontMetrics,基線(14)
Android繪圖之貝塞爾曲線簡介(15)
Android繪圖之PathMeasure(16)
Android 動態修改漸變 GradientDrawable