Рисование точки на поверхности не работает
Вот часть моего кода, над которым я работаю. Я могу заставить поверхность обновлять цвет, если просто установить цвет фона объекта поверхности. Однако я не могу создать холст и заставить холст выводиться на объект поверхности. Любая помощь будет принята с благодарностью, так как я довольно новичок в Android Studio. Это проект, над которым я работаю, чтобы добавить возможность рисовать точки на ощупь от пользователя в приложении с открытым исходным кодом LeafPic.
Файл SingleMediaActivity.java (не весь код). Объект paintMe объявлен перед методами.
public static PaintSurface paintMe;
@Override
public void onViewTapped() {
toggleSystemUI();
//Eric Tapped Screen
picCount = picCount + 1;
View testing = this.findViewById(android.R.id.content);
Log.wtf(TAG, "picCount:" + picCount);
paintMe = (PaintSurface) findViewById(R.id.surface); //Eric Added
paintMe.paintDot();
}
Файл PaintSurface.java (не весь код) Обратите внимание, что я могу изменить цвет фона поверхности, и он обновлен правильно, этот код в настоящее время закомментирован, поскольку я только что тестировал, чтобы увидеть, работает ли это. Однако созданный холст никогда не обновляется на объекте поверхности.
public void paintDot() {
SurfaceView surface = (SurfaceView) findViewById(R.id.surface);
SurfaceHolder holder = surface.getHolder();
//surface.setBackgroundColor(Color.GREEN); //this works and changes the surface to green
setWillNotDraw(false);
Canvas canvas = holder.lockCanvas();
Paint newPaint = new Paint();
newPaint.setColor(Color.BLUE);
canvas.drawCircle(20, 20, 100, newPaint);
// Finish editing the canvas and show to the user
holder.unlockCanvasAndPost(canvas);
invalidate();
Log.wtf(TAG, "PaintedUpdate");
}
Вот мой файл макета, который я использую. Обратите внимание, что это для тестирования, и поверхностный объект (поверхность) находится на вершине всего остального, поскольку я просто пытаюсь протестировать этот код.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/PhotoPager_Layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:theme="@style/ThemeOverlay.AppCompat"
>
<include
android:id="@+id/toolbar"
layout="@layout/toolbar"
android:background="@color/md_dark_appbar"
android:windowActionBarOverlay="true"
/>
<org.horaapps.leafpic.views.HackyViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/photos_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<include layout="@layout/there_is_nothing_to_show"/>
<org.horaapps.leafpic.activities.PaintSurface
android:id="@+id/surface"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="100"
android:background="@color/accent_red"
android:visibility="visible"
/>
</RelativeLayout>