Допустим, мы хотим нарисовать что-либо. Мы переопределяем DrawView и в нём уже что-то рисуем. Но важно, что в главном OnCreate() мы тогда указываем setContentView(new DrawView(this))вместо нужногоsetContentView(R.layout.activity_main)то есть конструируемся не из основной разметки activity_main, которая уложена в XML файл, а из рисунка DrawView.
Мой вопрос в том, что можно ли, сохраняя основную разметку activity_main, нарисовать какие-либо фигуры?
P.S. С ними будет небольшая анимация, поэтому их не укладывая в XML файл.
Стандартным средством для рисования является 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);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости