Android (новичок) изображение / с макет / проблема масштабирования - PullRequest
0 голосов
/ 11 августа 2011

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

У меня есть одна кнопка изображения и одно фоновое изображение здесь (примечание: девушка в бикини, так что, может быть, это NSFW - я подумал, что если я собираюсь увидеть этот экран в течение длительного времени, у меня может быть что-то интересное там; D)

http://imageshack.us/photo/my-images/6/finaldi.jpg/

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

Я сделал одну и ту же кнопку изображения в 36x36,48x48,72x72 и 96x96 и поместил их в каталоги drawable-ldpi, drawable-mdpi, drawable-hdpi без каких-либо изменений: (* ​​1010 *

Как сделать так, чтобы эта кнопка была одинаковой на всех экранах? Я читал на DIP, но где я могу это заявить?

Спасибо!

РЕДАКТИРОВАТЬ, XML-код:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:background="@drawable/background_ass">
    <TableLayout android:id="@+id/tableLayout1" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <ImageButton android:src="@drawable/level1" 
                android:id="@+id/imageButton1" 
                android:onClick="button_clicked1"
                android:background="#00000000"  android:layout_width="48dip" android:layout_height="48dip">
            </ImageButton>
        </TableRow>
        <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="TextView" android:id="@+id/textView1" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"></TextView>
        </TableRow>
        <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">
        </TableRow>
        <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content"></TableRow>
    </TableLayout>

</LinearLayout>

1 Ответ

1 голос
/ 11 августа 2011

Afaik ImageButton имеет минимальный размер, это видимая граница.Вы можете избавиться от него, определив прозрачный фон и заполнение нулями:

<ImageButton ... background="#00000000" padding="0px"/>

обновите после получения кода:
Проблема здесь в том, что ширина и высота ImageButton фиксированы, а изображениене сказано в масштабе.
Документы SDK дают некоторые пояснения по работе с экранами разных размеров / разрешений, но это не тривиальная проблема!
Моя рекомендация будет, в зависимости от ваших потребностей:

  • Если относительный размер (dip) должен быть одинаковым на всех устройствах, добавьте scaleType = "fitXY" к объявлению ImageButton
  • Если допустимо иметь размер чуть-чутьизменить, установить layout_width и layout_height на "wrap_content".
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...