Я создал пользовательский вид, расширив View.Android: рисунок на новом холсте
public class CustomView extends View {
private Canvas canvas2;
private Bitmap backingBitmap;
В конструкторе CustomView, я бы следующий код:
backingBitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
canvas2 = new Canvas(backingBitmap);
В OnDraw, у меня есть:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(100, 100, 50, paint);
canvas2.drawCircle(0, 0, 10, paint);
}
Я вижу круг, который получает нарисованный с помощью "холст" объект , но не тот, который нарисован с использованием объекта canvas2. Мое понимание заключается в том, что нужно создать только изменяемый битмап и сделать его растровым изображением Canvas. Может кто-нибудь указать, что здесь не так?
Вопрос с бонусом: где пользовательский объект холста создается на экране и как он может установить его положение?
Причина создания нескольких холстов: у меня есть SurfaceView, который охватывает весь экран. Таким образом, в основном его холст покрывает весь экран. Мне нужно сделать прямоугольник, похожий на окно, на экране, и все, что нужно, нужно оживить в пределах этого окна. В принципе, если вы переводите изображение в это окно, изображение не должно рисоваться за пределами границ окна.
Cheers!
почему вы execpt содержание canvas2 быть начертить – Blackbelt
Честно говоря, я был только наполовину ожидая, чтобы это работало. Я думал, что будут вызовы, которые будут прикреплять пользовательские полотна к поверхности или что-то в этом роде. Я не могу найти больше информации в документации. Поиск решений в Интернете также не принесло полезных результатов. Каков правильный процесс создания нового холста? –
Fst thing ваш собственный объект 'Canvas' действителен или нет, определенно ваш' canvas2' не будет отображаться на вашей ** поверхности ** когда-либо. Когда вы создаете представление, оно прикрепляется к окну. На этом этапе у него есть рисование с начальным началом, это дает вам 'canvas' ref, предоставленный методом' onDraw() '. Итак, как ваша поверхность знает, что вы создали еще один объект холста ... подумайте об этом. – Gru