我剛剛開始使用Android(買了一本書,希望能夠清除大部分這些基本問題,但這隻會在幾周後纔會發佈)。我正在嘗試製作佔據活動窗口一部分的Canvas(否則爲空白)。我想要做的就是充分利用這一點,看看底層繪圖像素和東西是如何工作的。後來我想看看我能不能做一個小小的繪圖程序。基本的畫布使用情況android
基本上,我很困惑如何創建一個畫布上的活動和繪製到。我試圖拼湊出一些可行的東西,它們沒有錯誤地編譯,但沒有做它應該做的事情。這裏是我的嘗試:
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
public class Graph extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_graph);
View curView = ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0); //should return a view without top bar...? http://stackoverflow.com/questions/4486034/get-root-view-from-current-activity
Bitmap bitmap = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(0xffffffff);
canvas.save();
Paint paint = new Paint();
paint.setDither(true);
paint.setColor(0xFF0000FF); //blue hopefully
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setStrokeWidth(3);
canvas.drawCircle(100, 100, 5, paint);
curView.draw(canvas);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.graph, menu);
return true;
}
}
的activity_graph.xml是一樣基本的,因爲它得到:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Graph" >
我會很高興的任何修改我的代碼,以及,伴隨着更正了我正在嘗試執行的代碼。我覺得我在這裏錯過了一些重要的東西,但只是想不出什麼。
在此先感謝!