2013-12-24 2 views
0

Я разрабатываю приложение, которое меняет заполнение линейных макетов в соответствии с разрешением телефона ... Я разработал XML-файл для разрешения 480 * 800 Здесь одна линейная планировка ... у меня есть 5 на 1 странице ...Android: получить разрешение телефона с помощью JAVA

<LinearLayout 
     android:id="@+id/layout2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingTop="78dp" 
     android:paddingLeft="120dp" > 

     <Button 
     android:textSize="30dp" 
     android:id="@+id/page" 
     android:textColor="@android:color/transparent" 
     android:background="@android:color/transparent" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Pages" /> 

    </LinearLayout> 

Теперь я использовал этот код в файле JAVA ::

l3=(LinearLayout)findViewById(R.id.layout3); 
    size = new Point(); 
    WindowManager w = getWindowManager(); 

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) 
    { 
     w.getDefaultDisplay().getSize(size); 

     width = size.x; 
     height = size.y; 
    } 
    else 
    { 
     d = w.getDefaultDisplay(); 
     width = d.getWidth(); 
     height = d.getHeight(); 
    } 
     height1=(height/800)*113; 
width1=(width/480)*14; 
l3.setPadding(width1, height1, 0, 0); 

Но переменные ширина и высота с фиксированными значениями 480 и 800. Таким образом, код для получения ширина и высота пикселей не работает ... пожалуйста, помогите !!!! My target API - 8,10 и 17. Пожалуйста, помогите мне с кодом, чтобы найти разрешение (пиксели) экрана.

+0

моя главная проблема в том, что я хочу, чтобы мое приложение, чтобы работать во всех телефонов резолюции ... позвольте мне объяснить ... У меня 5 линейных макетов ... которые должны быть организованы в спецификации я занимаюсь этим, используя прокладку ... но это дополнение dp отличается от разных разрешений ... моя часть кода не работает для этой проблемы ... пожалуйста, помогите .... – user2287659

ответ

1

http://developer.android.com/reference/android/util/DisplayMetrics.html

Вы можете использовать его следующим образом:

DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int width = displaymetrics.widthPixels; 

для плотности, есть

int densitiy = displaymetrics.densityDpi; 
+0

да, но моя основная проблема в том, что я хочу, чтобы мое приложение выполнялось во всех разрешениях телефона ... позвольте мне объяснить ... У меня есть 5 линейных макетов ... которые нужно упорядочить в определенных положениях ... Я делаю это с помощью прокладки. . но это дополнение dp отличается в разных разрешениях ... моя часть кода не работает для этой проблемы ... пожалуйста, помогите .... – user2287659

+0

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

0
DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

final int height = dm.heightPixels; 
final int width = dm.widthPixels; 
Смежные вопросы