Одинаковый вид компонента на разных экранах

Интерфейс, диалоги, темы, стили, меню
Ответить
divisionby0
Сообщения: 1
Зарегистрирован: 03 мар 2014, 10:04

Одинаковый вид компонента на разных экранах

Сообщение divisionby0 » 03 мар 2014, 19:16

Здравствуйте
Не могу понять как сделать внешний вид компонента одинаковым на разных экранах.
У меня есть что-то вроде ButtonBar, состоящий из 4х кнопок. (Я пока рассматриваю портретную ориентацию)
ButtonBar.png
ButtonBar.png (5.04 КБ) 1684 просмотра
Я положил в разных папках разного размера бэкграунды для кнопочек этих (серого цвета).

вот размеры картинок в папках (drawables) для кнопок:
ldpi - 53x53
mdpi - 80x80
hdpi - 120x120
xhdpi - 160x160
xxhdpi - 240x240

вот манифест

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="dev.div0neposeda"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <supports-screens
			android:smallScreens="true"
				android:normalScreens="true"
				android:largeScreens= "true"
				android:anyDensity="true"
		/>
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="dev.div0neposeda.StartActivity"
            android:label="@string/app_name"
            android:theme="@style/AppBaseTheme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
и лэйаут

Код: Выделить всё

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:orientation="horizontal"
    tools:context=".StartActivity" >

	<Button
    	android:id="@+id/btn"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:background="@drawable/button_custom"  />
	<Button
    	android:id="@+id/btn1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:background="@drawable/button_custom"  />
	<Button
    	android:id="@+id/btn2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:background="@drawable/button_custom"  />
	<Button
    	android:id="@+id/btn3"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:background="@drawable/button_custom"  />
</LinearLayout>
кастомная кнопка

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_bar_btn_selected"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_bar_btn_up"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_bar_btn_up" />
</selector>
У меня только на телефоне 320x480 4 кнопки эти в ширину заполняют все пространство.
forth_element_1.png
forth_element_1.png (8.45 КБ) 1684 просмотра
На экранах побольше эти 4 кнопки не заполняют всю ширину экрана.
forth_element.png
forth_element.png (9.32 КБ) 1684 просмотра
Что я сделал неверно ?

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Одинаковый вид компонента на разных экранах

Сообщение altwin » 13 мар 2014, 17:54

Supporting Multiple Screens
Ну а вообще можно во всех кнопках свойство android:layout_width="0px" т.е. сделать равным 0 и использовать везде к примеру android:layout_weight="1"
Изображение

Ответить