Я новичок в программировании на Android и столкнулся с небольшой проблемой. Если бы вы могли помочь, это было бы очень полезно.draw rectangle canvas android
Я делаю прямоугольники для живых обоев Я делаю с помощью:
void drawFrame() {
final SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
try {
c = holder.lockCanvas();
if (c != null) {
Paint paint = new Paint();
paint.setColor(Color.CYAN);
Paint ypaint = new Paint();
ypaint.setColor(Color.RED);
Paint ppaint = new Paint();
ppaint.setColor(Color.GREEN);
drawVerStripes(c, ppaint, 0,20);
drawVerStripes(c, paint, 50,20);
drawVerStripes(c, ypaint,0,10);
}
} finally {
if (c != null)
holder.unlockCanvasAndPost(c);
}
Функции:
Params:
ширина: ширина прямоугольника
пространства: разница между последний прямой и этот прямой
int y=0;
int oldY=0;
private void drawVerStripes(Canvas c, Paint paint, int space, int width) {
y=oldY+space;
c.drawRect(y, 0, y+width,c.getHeight(), paint);
oldY=y;
}
В результате прямоугольники перемещаются в одну сторону экрана очень быстро. Я хочу, чтобы они оставались на экране и не двигались.
Другими словами, существует ли способ, который drawVerStripes выполняется только один раз, а не каждый кадр.
Что вы хотите сказать? – Raghunandan