Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.63
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
#1

Экраны различных устройств - Программирование Android

26.06.2012, 23:19. Просмотров 4108. Ответов 8
Метки нет (Все метки)


http://www.cyberforum.ru/android-dev/thread1055906.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2012, 23:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Экраны различных устройств (Программирование Android):

Адаптация под разные экраны
покопался в гугле но ни как не поймую при создании проекта(Android, Eclipse)...

Gridview, оптимизация под все экраны
Всем здравствуйте! При разработке приложения столкнулся с такой проблемой: не...

C# оптимизация приложения под разные экраны(не GUI)
Здравствуйте. Дело в том, что изначально я делал игру(2d в Unity через...

Как адаптировать приложение под все экраны смартфонов?
Всем привет! Я новичек в java и начал с самого простого-делаю кликер-игру на...

Посоветуйте утилиту для создания картинок под разные экраны Android
Может прога какая-то, или плагин по ФШ, всё равно что.

8
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.06.2012, 02:52 #2
юзаю dp и никаких проблем не было.
покажите свой layout.
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
28.06.2012, 23:25  [ТС] #3
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="@android:color/white">
    
        <ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter"
        android:src="@drawable/logo"/>
        
        <ImageView
        android:layout_width="fill_parent"
        android:layout_height="250dp"
        android:scaleType="fitCenter"
        android:src="@drawable/animals"/>
        
      
        
            <ImageButton 
            android:id="@+id/play_button"
            android:padding="2dp"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:src="@drawable/menu_play_button"  
            android:scaleType="fitCenter"
            android:background="@android:color/transparent"/>
            />
            
             <ImageButton 
            android:id="@+id/help_button"
            android:padding="2dp"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:src="@drawable/menu_help_button"  
            android:scaleType="fitCenter"
            android:background="@android:color/transparent"/>
            />
        
        
            <ImageButton 
            android:id="@+id/exit_button"
            android:padding="2dp"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:src="@drawable/menu_exit_button"  
            android:scaleType="fitCenter"
            android:background="@android:color/transparent"/>
            />
                
            
 
</LinearLayout>
Был вот такой код разметки. Здесь вроде значения dp уже подправлены
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.06.2012, 00:09 #4
если указывать размер в dp, то на девайсах с разным разрешением экрана, элементы будут иметь одинаковые размеры, соответственно если у другого девайса экран меньше, то что-то может и не поместится, зато размер не будет зависеть от разрешения экрана.

Добавлено через 6 минут
что бы указать размеры в пропорциях используют android:layout_weight.
для разных типов девайсов, которые сильно отличаются по величине, делают дополнительные лаяуты (например для планшетов) - http://developer.android.com/intl/ru...s/screens.html

Добавлено через 2 минуты
вот еще полезная ссылка - http://startandroid.ru/materialy/pam...n-density.html

Добавлено через 2 минуты
если указывать в пикселях, то на одном девайсе кнопка может быть вдвое больше чем на другом с тем же размером дисплея.

Добавлено через 1 минуту
а getWidth() и getHight() вернут не 0 только тогда, когда лаяут уже нарисовался на экране.

Добавлено через 3 минуты
еще одна ссылка - http://developer.android.com/intl/ru...s_support.html

Добавлено через 9 минут
когда, например, хотят сделать низу панельку с кнопочками, то в корневой лаяут добавляют 2 лаяута.
первый лаяут android:layout_weight=1, второй android:layout_weight=0, это значит, что панелька будет иметь определенную указанную величину, а верхний лаяут будет просто занимать все остальное пространство и никуда кнопочки не вылезут.

Добавлено через 5 минут
в верхний лаяут можешь добавить свой рисуночек и указать размеры fill_parent + добавит margin и рисунок будет адаптироваться под размеры экрана не влияя на кнопочки
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
29.06.2012, 00:28  [ТС] #5
в смысле, в верхний лейаут добавить рисунок не бекграундом, а ImageView?
по поводу размещения кнопок: т. е. мне надо расположить все кнопки в лейауте, размеры которого полюбому влезут на любое устройство, а остаток займет картинка, так?

И еще: когда происходит прорисовка активити на экране?
я пытался найти размеры после setContentView()
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.06.2012, 00:37 #6
бекграундом не бекграундом - это уже другая тема, смысл в том, что бы сделать нижнюю панель фиксированного размера(какого хотите) и указав размер в dp он вдруг не станет слишком маленьким или слишком большим.
а контекст помещаете в верхний лаяут (картинки там или не картинки), и нижняя панелька всегда будет на одном месте и одного размера.

Добавлено через 1 минуту
Цитата Сообщение от kvaka Посмотреть сообщение
И еще: когда происходит прорисовка активити на экране?
я пытался найти размеры после setContentView()
вроде после выполнения метода onCreate активити, нужно тестить что бы сказать точно.
если увидели активити на экране, значит прорисовка произошла)
1
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
29.06.2012, 00:38 #7
вы сначало прочитайте те ссылки которые вам дали и вопросы сами отпадут
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.06.2012, 01:06 #8
вот так, например, можно получить размеры
Java
1
2
3
4
5
6
7
8
9
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
 
    @Override
    public void run() {
        Log.v("Log", "" + findViewById(R.id.qqq).getWidth());
 
    }
}, 100);
06-28 20:47:52.624: V/Log(631): 480

Добавлено через 20 минут
еще можно екстенднуть лаяут о получить размеры в методе onMeasure переопределив его.
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
29.06.2012, 01:49  [ТС] #9
Спасибо, до последнего я еще не дошел. Сейчас вроде решается вопрос установкой веса - очень помогли
0
29.06.2012, 01:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2012, 01:49
Привет! Вот еще темы с решениями:

Как лучше организовать расположение компонентов на экране? (картинка и 3 кнопки на разные экраны)
Я делаю приложение с увеличением компонентов программно. По такому принципу...

5.2'' и 5.0'' экраны - разные лэйауты в итоге. Как добавить values\dimens.xml(1080*1920 420dpi)?
Привет! Я боролся с этой проблемой около недели и не могу понять, как заставить...

Взаимодействие устройств (Wi-Fi)
Ребята, помогите пожалуйста разобраться с проблемой. Как реализовать...

Bluetooth. Поиск устройств
Всем привет. Подскажите пожалуйста как правильно написать поиск устройств....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru