80,351
社区成员
发帖
与我相关
我的任务
分享
@Override
public void run() {
while (flag) {
try {
synchronized (mHolder) {
Thread.sleep(100); // 让线程休息100毫秒
Draw(); // 调用自定义画画方法
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (mCanvas != null) {
// mHolder.unlockCanvasAndPost(mCanvas);//结束锁定画图,并提交改变。
}
}
}
}
/**
* 自定义一个方法,在画布上画一个圆
*/
protected void Draw() {
mCanvas = mHolder.lockCanvas(); // 获得画布对象,开始对画布画画
if (mCanvas != null) {
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.BLUE);
paint.setStrokeWidth(10);
paint.setStyle(Style.FILL);
Bitmap pic = ((BitmapDrawable) getResources().getDrawable(
R.drawable.degree)).getBitmap();
mCanvas.drawBitmap(pic, 0, 0, paint);
mHolder.unlockCanvasAndPost(mCanvas); // 完成画画,把画布显示在屏幕上
}
}
<?xml version="1.0" encoding="utf-8"?>
<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"
android:background="#FFFFFF"
tools:context="com.example.jeffdeen.compasspro.MainActivity">
<com.example.jeffdeen.compasspro.MySurfaceView
android:id="@+id/myview"
android:layout_width="300dp"
android:layout_height="300dp"
/>
</RelativeLayout>