我刚开始接触 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" >
我也很高兴对我的代码进行任何更正,以及我正在尝试做的更正代码。我觉得我在这里遗漏了一些重要的东西,但就是不知道是什么。
提前致谢!