Я пытаюсь нарисовать на холсте, но ось Y, как представляется, не так. Похоже, что 0 на самом деле -100.Неправильная ось Y при рисовании на холсте
Например, когда я рисую красный квадрат, который 10 точек от каждой границы я получаю следующую площадь:
код я использую:
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>
Когда я использую следующий код, все работает S отлично:
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);
http://i.imgur.com/54JwLfR.png
Ваш второй код, кажется, работает, потому что это не имеет никакого значения для этого кода, что некоторые из холста не на экране. – weston
Не думал об этом. –
Когда я рисую прямоугольник на 0,110, height-110, width Он заполняет весь экран, за исключением границ 10 px. Что может привести к тому, что я должен добавить 100? –