2012-06-15 3 views
1

Я работаю с холстом в android. Я хочу рисовать фигуры на холсте, которые подходят на каждом экране.

, если размер экрана 320 * 240 тогда высота & ширина с составляет 90 * 90 но

, если screen_size является> 320 * 240 то оно должно соответствующим образом увеличить.Сделать совместимость экрана, содержащий холст

Пусть screen_size = 1280 * 800 то, сколько это должно увеличить

Я не знаю, что делать для этого

кодекса Как

int fixHeight = 240, fixWidth = 320; 
Paint paint; 
paint = new Paint(); 
paint.setColor(Color.GREEN); 
DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int width = displaymetrics.widthPixels; 
@Override 
protected void onDraw(Canvas canvas) { 
    if (height <= fixHeight && width <= fixWidth) { 
      canvas.drawRect(10, 10, 50, 50, paint); 
    } else { 
      // Don't Know What TO Put Here 
    } 
} 

Может ли один помочь me

+0

Опубликуйте свой метод onDraw, после чего кто-то может внести необходимые изменения. – Sana

ответ

1

в вашем методе onDraw вы можете проверить раскладку height и width вашего canvas и отрегулируйте ваши draw.height и draw.width соответственно.

Если размер увеличен для экрана, то вы можете использовать коэффициент умножения для ваших коэффициентов draw.width и draw.height для умножения или деления перед рисованием.

EDIT: После опубликования кода.

Скажем, 320 * 240 - это базовый футляр для рисования прямоугольника высотой 40 и ширины, равного 40, который равен canvas.drawRect(10, 10, 50, 50, paint);. Таким образом, левый, верхний, правый и нижний можно использовать для изменения в вашем случае с помощью нового разрешение 1280 * 800, используя приведенную ниже формулу.

320 --> (50 - 10) 
1280 --> (x - 10) 

так x = 10 + (50-10)*1280/320

Попробуйте повторить тот же Forumla для wdith и вы должны получить свои базовые координаты. Я считаю, что вы можете настроить 10, 10 (которые я поддерживаю здесь постоянно) на новое место, основанное на той же формуле.

+0

умножающий фактор делает форму в слишком большом размере, так что невозможно умножить – Freni

+0

Я хочу сделать что-то вроде концепции веб-страницы, если мы сделаем ее маленькой, тогда она будет, и когда она станет больше, управление страницей будет регулироваться автоматически, увеличивается и настраивается то же место – Freni

+0

, умноженное на 0.2, 0.02, 0.002 и т. д., должно уменьшать его. – Sana

Смежные вопросы