В продолжение- освоил я стало быть - как по шаблону делать графическое приложение на андроиде, решил что то свое замутить, для практики так сказать, ну и, на коленке сперва через четыре Line рамку нарисовал, размер рамки само собой, подобрал путем изменения и проверки запуском, было что то вроде:
p.setStrokeWidth(1); //p- ранее определено через p=newPaint(), а эта и следующая строки кода- задание толщины линии и цвет
p.setColor(Color.GREEN);
float wh=719;
float hi=1330;
canvas.drawLine(1,1,1,hi,p);
canvas.drawLine(1,hi,wh,hi,p);
canvas.drawLine(wh,1,1,1,p);
Далее стал искать- как же это дело сократить, решил сделать через Rect(прямоугольник), однако по умолчанию он идет с заливкой, начал гуглить и нашел следующий вариант:
p.setStyle(Paint.Style.STROKE); //отключает заливку
canvas.drawRect(1,1,wh,hi,p);
IDE переварила и собрала APK, все сработало выдав картинку, идентичную той что была с четырьмя Line, однако следующий вопрос- меня занявший- был- а как же узнать программно высоту и ширину холста, чтоб параметры прямоугольника плясали от этих величин, а не задавались путем подбора, Опять полез гуглить- нашел массу вариантов, которые в JStudio не запускались- типа этого:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Однако не сдавался и наконец таки нашел более простой вариант:
int xscr=canvas.getWidth();//ширина экрана
int yscr=canvas.getHeight();//высота экрана
p.setStyle(Paint.Style.STROKE);
canvas.drawRect(1,1,xscr,yscr,p);
Да, в последствии- чтоб рамку было лучше видно сверху и снизу переписал последнюю строчку так, чтоб сверху и снизу были отступы в три пикселя:
canvas.drawRect(1,3,xscr,yscr-3,p);
Ну, на сегодня все пожалуй, до следующих встреч дорогие читатели.
1 минута
17 апреля 2024