Android. Нарисовать овал поверх Activity

201
18 мая 2017, 10:05

Допустим, мы хотим нарисовать что-либо. Мы переопределяем DrawView и в нём уже что-то рисуем. Но важно, что в главном OnCreate() мы тогда указываем setContentView(new DrawView(this))вместо нужногоsetContentView(R.layout.activity_main)то есть конструируемся не из основной разметки activity_main, которая уложена в XML файл, а из рисунка DrawView.

Мой вопрос в том, что можно ли, сохраняя основную разметку activity_main, нарисовать какие-либо фигуры?

P.S. С ними будет небольшая анимация, поэтому их не укладывая в XML файл.

Answer 1

Стандартным средством для рисования является Canvas, который обычно берется или из Bitmap или из SurfaceView. Для SurfaceView:

<SurfaceView
    android:id="@+id/surface"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

код примерно такой:

setContentView(R.layout.main);
    SurfaceView surface = (SurfaceView) findViewById(R.id.surface);
    surface.getHolder().addCallback(new Callback() {
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            // Do some drawing when surface is ready
            Canvas canvas = holder.lockCanvas();
            canvas.drawColor(Color.RED); //рисуем здесь
            holder.unlockCanvasAndPost(canvas);
        }
        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
        }
        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        }
    });

Можно взять в качестве полотна не SurfaceView, а Bitmap, тогда:

Canvas canvas = new Canvas(bitmap);
//дальше рисуем на Canvas белую линию по диагонали
Paint textPaint = new Paint();
textPaint.setColor(Color.WHITE);
canvas.drawLine(0, 0, canvas.getWidth(), canvas.getHeight(), textPaint);
READ ALSO
Две Animation в одном

Две Animation в одном

У меня проект Компас, в начале проекта включается анимация ImageView и работает постоянноХочу прикрепить к ImageView еще одну Animation,что бы ImageView опустился...

202
Фоновый процесс в приложении на android

Фоновый процесс в приложении на android

Пишу небольшую утилиту под androidНазначение - чистка мусора, удаление ненужных файлов и тд

221