2013-02-22 4 views
0

У меня есть виджет, который показывает два TextView показанный здесь:Виджет TextView размера

widget screenshot

Что я хочу знать, можно изменить размер текста при изменении размера виджета? В основном, сделать виджет изменчивым, как и должно быть. Есть идеи?

ответ

1

Вам необходимо реализовать XML-виджет, чтобы заполнить родительский элемент, а затем разрешить изменение размера.

Например

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 
</LinearLayout> 

Флага виджета быть изменяемым с android:resizeMode="vertical" в вашем <appwidget-provider ... />

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

Для виджетов экрана блокировки вы должны сделать это как бит больше для того, чтобы виджет мог быть изменен. Взглянуть на App Widget sizing guidelines

Вот соответствующая часть

Когда виджет размещен на заблокированном экране, рамки игнорирует MinWidth, MinHeight, minResizeWidth и minResizeHeight поля. Если виджет также является виджлером домашнего экрана, эти параметры по-прежнему необходимы , поскольку они все еще используются на дому, но они будут игнорироваться для целей экрана блокировки.

Ширина виджета lockscreen всегда заполняет предоставленное пространство. Для высоты LockScreen виджет, у вас есть следующие варианты:

  • Если виджет не маркировать себя как вертикально изменяемые (андроид: ResizeMode = «вертикальный»), то высота виджета всегда будет " small ":
    • На телефоне в портретном режиме« маленький »определяется как пространство, оставшееся при отображении пользовательского интерфейса разблокировки.
    • На планшетах и ​​ландшафтных телефонах «маленький» устанавливается для каждого устройства.
  • Если виджет отмечает себя как вертикально изменяемый размер, высота виджета отображается как «маленькая» на портретных телефонах, отображающих интерфейс разблокировки. Во всех остальных случаях размеры виджета для заполнения доступной высоты.
+0

Спасибо, удивительный ответ, но что я ищу, когда я изменяю размер виджета меньше, например, чтобы изменить каждый размер TextView. Я не знаю, возможно ли это, хотя так спасибо за большой ответ – Timmo

0

В дополнение к @ ответ Кирка: Если вы рисуете текст на холсте (Canvas.drawText(....)), то виджет будет автоматически изменять размер текста при изменении размеров виджета. К сожалению, виджеты приложений изменяются только с Android Honeycomb и выше.

Смежные вопросы