安卓surfaceview 显示图片不完整

JefferyDing 2016-04-28 11:54:00
刚刚出现了一个bug,见图

原图为


新手,不知道原因,求解

@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
<?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>
...全文
342 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ganshenml 2016-04-29
  • 打赏
  • 举报
回复
android:layout_width="300dp" android:layout_height="300dp"   改成wrap_content,另外如果还有些问题的话,调整一下drawBitmap中的中心点位置

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧