Запас изменения виджета Android во время выполнения - PullRequest
0 голосов
/ 07 февраля 2012

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

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

Я попробовал все готово с

RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget);
updateViews.setInt(R.id.Value, "setMargins", 10);

Но это дает исключение. Есть ли способ изменить левое поле в виджете во время выполнения ???

Мой файл макета выглядит так:

<ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/widget_alarm" 
        android:id="@+id/imageAlarm"
        android:layout_marginLeft="10dp" 
        android:layout_centerVertical="true"
    />

    <TextView  
        android:id="@+id/alarmCount"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_marginTop="22dip"
        android:layout_marginLeft="58dip"
        android:text="0"
        android:textColor="#000000"
    />

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Я нашел решение :) Это была действительно задача добавить grafity: center в текстовое поле.

Я изменил свой макет на следующее:

<ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/widget_alarm" 
        android:id="@+id/imageAlarm"
        android:layout_marginLeft="10dp" 
        android:layout_centerVertical="true"
    />

    <TextView  
        android:id="@+id/alarmCount"
        android:layout_width="25dp" 
        android:layout_height="wrap_content"
        android:layout_marginTop="22dip"
        android:gravity="center"
        android:textSize="12dip"
        android:text="000"
        android:textColor="#d21925"
        android:layout_alignRight="@+id/imageAlarm"
    />

Теперь текстовое представление выровнено по правому краю значка, а ширина равна размеру маленького круглого круга. Граффити: центр работает хорошо.

0 голосов
/ 07 февраля 2012

добавить к вашему просмотру текста в формате xml

android:gravity="center_vertical|center_horizontal"

Ваш текст всегда будет в центре.

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