用c语言绘制自定义图形,Android使用自定义View绘图
使用自定義 View 繪圖
實例 MyViewCanvasDemo 自定義一個名為 MyView 的 View 類,并在其 onDraw() 方法中繪制簡單的圖像,運行效果如圖 1 所示。
圖 1??簡單的 View 繪圖
實例 MyViewCanvasDemo 沒有使用布局文件,而是將自定義的 MyView 對象顯示出來。主 Activity MyViewCanvasDemoActivity 的代碼如下:
public class MyViewCanvasDemoActivity extends Activity{
/**Called when the activity is first created.*/
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
}
MyView 類的定義代碼如下:
package introduction.android.MyViewCanvas;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
buildPoints();
}
private float[] mPts;
private static final float SIZE = 300;
private static final int SEGS = 32;
private static final int X = 0;
private static final int Y = 1;
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
//使用Canvas繪圖
//畫布移動到(10,10)位置
canvas.translate(10, 10);
canvas.drawColor(Color.WHITE);
//創建紅色畫筆,使用單像素寬度,繪制直線
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(0);
canvas.drawLines(mPts, paint);
//創建藍色畫筆,寬度為3,繪制相關點
paint.setColor(Color.BLUE);
paint.setStrokeWidth(3);
canvas.drawPoints(mPts, paint);
//創建Path, 并沿著path顯示文字信息
RectF rect = new RectF(10, 300, 290, 430);
Path path = new Path();
path.addArc(rect, -180, 180);
paint.setTextSize(18);
paint.setColor(Color.BLUE);
canvas.drawTextOnPath("在自定義View中使用Canvas對象繪圖實例", path, 0, 0, paint)
}
private void buildPoints() {
//生成一系列點
final int ptCount = (SEGS + 1) * 2;
mPts = new float[ptCount * 2];
float value = 0;
final float delta = SIZE / SEGS;
for (int i = 0; i <= SEGS; i++) {
mPts[i * 4 + X] = SIZE - value;
mPts[i * 4 + Y] = 0;
mPts[i * 4 + X + 2] = 0;
mPts[i * 4 + Y + 2] = value;
value += delta;
}
}
}
所有具體的繪圖工作都由 Canvas 類來完成。Canvas 類提供了 drawXXX() 方法來完成對特定形式的圖形的繪制。
在 Canvas 繪圖過程中,涉及以下幾個類:
1)Color
顏色類,其中以靜態常量的方式定義常見的各種顏色,例如黑色 Color.BLACK,藍色 Color.BLUE 等,同時也可以通過以下方法指定顏色的具體值來建立顏色對象。
static int argb(int alpha, int red, int green, int blue):構造一個包含透明要素的顏色對象。
static int rgb(int red, int green, int blue):構造一個由 RGB 三色組成的顏色對象。
2)Paint
畫筆類,通過該類的對象創建繪圖時使用的畫筆的樣式。使用 Paint.setColor() 方法設置畫筆的顏色,使用 setStrokeWidth() 方法設置畫筆的寬度。
3)Path
路徑類,可用于自定義各種路徑。本實例中使用 Path.addArc() 方法定義了一個弧線路徑,并沿著該路徑顯示了說明文字。
Android 提供各種各樣的用于繪制圖形的方法,在此不可能一一介紹,詳細內容讀者可以參考 Android SDK 文檔。
總結
以上是生活随笔為你收集整理的用c语言绘制自定义图形,Android使用自定义View绘图的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: deepin linux 2014 硬盘
 - 下一篇: python随机森林特征重要性_Pyth