2013-05-20 3 views
2

У меня есть текстовое изображение с фоном 9patch, нарисованным в dropshadow. Текст не центрируется в определенном кадре, а сосредоточен на всех измерениях изображения, включая dropshadow. Проверка его в инструменте Draw9patch в SDK показывает содержимое пространства правильно, но текст игнорирует это.Droid: Как центрировать текст в границах границы 9patch

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toast_layout_root" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/toast_frame2" 
     android:gravity="center" 
     android:padding="10dp" 
      android:text="Toast text" 
     android:textColor="#444444" 
     android:textSize="10sp" /> 

</LinearLayout> 

enter image description here

Как получить TextView использовать определение 9patch?

ответ

0

Для рамки не существует понимания того, что вы рисуете тень. Вам нужно центрировать рамку. Измерьте пиксели между рамкой и краем справа от вашего 9-патча, а затем вставьте много столбцов столбца между левым краем вашего кадра и левым краем 90-патча. Повторите верх.

Отрегулируйте отступы, чтобы текст не перекрывал края рамки.

+1

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

+1

Проблема с попыткой установить прописку слева в xml, а не в 9-патч, заключается в том, что вам нужно указать заполнение для каждой версии вашего 9-патча с разрешением на дюйм, а затем убедитесь, что оно выглядит правильно при каждой классификации экрана , Если заполнение находится в 9-патче, все это уходит. – Krylez