2013-09-26 2 views
0

Я делаю игру, которая отображает анимированные символы на экране Теперь я нахожусь на том этапе, где я хочу, чтобы он отображался правильно на других устройствах, а также увеличил разрешение экрана на моем собственном устройстве и он по-прежнему отображаться правильно для этого я хочу, чтобы получить масштабный коэффициент, так что я могу изменить все свои значения пикселей для DP значения однако показатели дисплея не изменится, независимо от того, что я изменить разрешение экранане удалось получить показания дисплея

, например

this.getHolder().setFixedSize(1024, 768); 
scale = getResources().getDisplayMetrics().density; 
DisplayMetrics dm = new DisplayMetrics(); 
((Activity) getContext()).getWindowManager().getDefaultDisplay() 
    .getMetrics(dm); 
float xDpi = dm.xdpi; 
float yDpi = dm.ydpi; 

Теперь, независимо от того, что я меняю 'setfixedsize', оба xdpi и scale остаются неизменными, даже если он показывает увеличенное разрешение экрана на дисплее.

+0

HTTP: // StackOverflow .com/questions/5078808/android-show-wrong-screen-resolution? rq = 1 – Sean

ответ

0

Вы можете получить показатели отображения, используя нижнюю строку.

DisplayMetrics metrics = getResources().getDisplayMetrics(); 
+0

Как я сказал в своем вопросе. Моя проблема не связана с отображением. Моя проблема заключается в понимании, почему, когда я изменяю разрешение с помощью setFixedSize, параметры displaymetrics не изменяются, но мой экран показывает другое разрешение. – heckubiss

+1

. Я не думаю, что вы действительно можете изменить значения параметров отображения устройств, вам придется прочитать параметры отображения и изменить размер ваши макеты соответственно. –

0

Это мой код для отображения обоев может быть его помощь полный =====>

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    float w = size.x; 
    float h = size.y; 
    width = ((w)/1000); 
    height = ((h)/1000); 
    Log.d("width===>", String.valueOf(width)); 
    Log.d("height===>", String.valueOf(height)); 

(ИЛИ)

metrics = Resources.getSystem().getDisplayMetrics(); 
    float w=metrics.widthPixels; 
    float h=metrics.heightPixels; 

    width = ((w)/1000); 
    height = ((h)/1000); 
    if(width == 0.72f && height == 1.28f){ 
     width=1.08f; 
     height=1.776f; 

    } 
    Log.d("width===>", String.valueOf(width)); 
    Log.d("height===>", String.valueOf(height)); 
Смежные вопросы