我尝试在 Canvas 上绘图,但 Y 轴似乎错误。看起来 0 实际上是 -100。
例如,当我绘制一个距离每个边框 10 px 的红色正方形时,我得到以下正方形:
我正在使用的代码:
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(10, 10, canvas.getWidth() - 10, canvas.getHeight() - 10, paint);
我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/toolbar" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:background="@color/facebook_color"
android:id="@+id/catchImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:layout_marginBottom="20dp"
android:adjustViewBounds="true" />
<View
android:background="@color/news_item_seperator_stroke"
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
/>
</LinearLayout>
</ScrollView>
</LinearLayout>
当我使用以下代码时,一切正常:
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(0, 0, canvas.getWidth()/2, canvas.getHeight()/2, paint);
Paint paint2 = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(canvas.getWidth()/2, canvas.getHeight()/2, canvas.getWidth(), canvas.getHeight(), paint2);
最佳答案
你的代码很好,你的 Canvas 只是比当前屏幕大。检查你的布局 xml。请记住:坐标是相对于 Canvas 的,而不是相对于 Canvas 的可见部分。
关于java - 在 Canvas 上绘图时 Y 轴错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847646/