android рисовать переводить растровое изображение на холст и рисовать - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть изображение и указаны координаты c пикселей на том изображении, которое я пометил. например: здесь ширина изображения:

ширина: 374px

высота: 738px

и координаты прямоугольных пикселей на изображении:

left угол x: 100

левый угол-y: 20

правый угол-x: 250

правый угол-y: 550

enter image description here

Теперь я хочу отметить эти пиксели в своем приложении. Итак, у меня есть макет с изображением, а поверх него - вид костюма, я назвал его «paintView» и рисую на нем настроенный холст.

Это мой код макета:

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

                <ImageView
                android:id="@+id/imgView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:clickable="true"
                android:focusable="true"
                android:src="@drawable/tower"
                android:padding="30dp"
                android:layout_gravity="center"
                android:scaleType="fitXY" />

            <com.test.app.PaintView
                android:id="@+id/paintView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:adjustViewBounds="true"
                android:padding="30dp"
                android:clickable="true"
                android:focusable="true"
                android:layout_gravity="center"
                />

        </FrameLayout>

это часть в настроенном классе, когда я хотел нарисовать прямоугольник по координатам пикселей, которые у меня есть:

public class PaintView extends View {

    ...

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.save();
        Rect buttonRect = new Rect(100, 250, 20, 550);
        canvas.drawRect(buttonRect, mPaint);
    }

    ...
}

Но холст не рисует его правильно, это результат:

enter image description here

есть ли способ, которым я могу «перевести» заранее известные мне пиксели, чтобы правильно нарисовать их на холсте

...