Articles of ondraw

Рисование на холсте вне метода onDraw ()

Вот мой метод OnDraw () void onDraw(Canvas canvas) { mCanvas = canvas; //invalidate(); int x = 0; Iterator<Letter> it = mNextUpQueue.iterator(); while(it.hasNext()){ mCanvas.drawBitmap(it.next().getNext(), mNextUpCoordinates.get(x).x, mNextUpCoordinates.get(x).y, mPaint); mCanvas.drawBitmap(mAvailableLetters.get(x).getNotPressed(), mAvailableLettersCoordinates.get(x).x, mAvailableLettersCoordinates.get(x).y, mPaint); x++; } } Я установил canvas для глобальной переменной mCanvas. Но если я пытаюсь рисовать на mCanvas вне метода onDraw (), я получаю сообщение об […]

Эффективный 2D-чертеж в Android

Я искал немало часов и не смог найти четкого ответа на мой вопрос. У меня есть приложение, где мне нужно нарисовать спортивное поле (включая все тональные линии) на экране. До сих пор я расширил SurfaceView и в значительной степени скопировал оставшуюся часть демо-версии LunarLander. Все данные, которые приложение требует, чтобы рисовать высоту до правильных размеров, […]

DrawBitmap не является полноэкранным

Я показываю изображение, используя метод onDraw, например: public void onDraw(Canvas canvas) { super.onDraw(canvas); Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.photo0); canvas.drawColor(Color.BLACK); canvas.drawBitmap(background, 0, 0, null); Я хочу установить это изображение в качестве фона, но оно отображается только на части экрана. Как установить его как полноэкранный режим? Есть способ установить изображение в качестве фона из xml и нарисовать […]

Метод 'onDraw ()' будет вызываться дважды, когда вызывается 'invalidate'

Метод ' onDraw () ' будет вызываться дважды, когда вызывается ' invalidate '. Я хочу переместить вид в onDraw() , вот мой код package com.blsm.sss.view; public class MoveRelativeLayout extends RelativeLayout { private int mDelta = 0; public MoveRelativeLayout(Context context, AttributeSet attrs) { super(context, attrs); } public MoveRelativeLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, […]

Проблемы с Android FrameLayout при переопределении onDraw

protected void onDraw(Canvas canvas) { float width = canvas.getWidth(); float height = canvas.getHeight(); Path path = new Path(); path.addArc(new RectF(0, 0, width, height), 90, 180); canvas.clipPath(path); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setColor(Color.RED); canvas.drawRect(new RectF(0, 0, width, height), paint); } Я использую этот код для переопределения других представлений; Это нормально (показать полукруг); Но когда я […]

Текст перекрытия андроидов

Попытка привлечь автомобильные датчики в android с помощью Paint и ondraw () с использованием кода с открытым исходным кодом. Датчики работали довольно хорошо, но были проблемы с Android 4 и выше. После этого изменился объект Paint, установив setLinearText (true), из-за чего все работает. Но теперь текст в манометрах начал перекрываться, и все выглядит размытым, как […]

Android onDraw () выполняется во всех представлениях?

Вот странное поведение, которое я не понимаю о пользовательских представлениях. У меня два вида в макете кадра, один поверх другого. Представления просты, и я сделал их только для короткого теста public class View1 extends View { …. @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN){ this.updateDrawings(); } return true; } @Override protected void […]

Android Canvas и Hardware Acceleration?

Привет всем, мне было интересно, можно ли рисовать на экране Canvas / Bitmap и использовать аппаратное ускорение или мне нужно рисовать внутри onDraw() View Например, я рисую на экранном растровом изображении, делая следующее: Bitmap.Config config = Bitmap.Config.ARGB_8888; Bitmap buffer = Bitmap.createBitmap(200, 200, config); Canvas canvas = new Canvas(buffer); Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawLine(0, […]

Как использовать мягкую клавиатуру Android в SurfaceView

У меня есть SurfaceView, на который я рисую, нет элементов управления, текстовых полей или любого другого типа элемента типа формы. Я хотел бы иметь возможность: 1: коснитесь одного из кругов, нарисованных методом SurfaceView onDraw (), и откройте стандартную программную клавиатуру Android. (Я знаю, как сделать часть обнаружения касания, просто нужно как-то открыть мягкую клавиатуру) 2: […]

Холст Android – Нарисуйте отверстие

Возможно ли реализовать следующую картинку на Android с холстом? Я хочу иметь отверстие и не только круг над красным слоем, который имеет желтый цвет. Я пробовал это (и не удалось) со следующим кодом в моем onDraw() -Мотод: canvas.drawBitmap(yellow, 0, 0, paint); canvas.drawBitmap(red, 0, 200, paint); Paint p = new Paint(); p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); canvas.drawCircle(300, 300, radius, […]