我创建了一个带有图标的Android小部件,该图标在右上角的一个小白圈中显示了一个数字。现在,如果我的值是一个字符,则该值恰好位于小白色圆圈的中间。但是当值为2个字符时,它就不再在中间了。
尝试做的是,如果我的值超过1个字符,那么我想更改textview的左边距,以便值位于图标一部分的白色圆圈的中心。
我已经准备好了
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"
/>
答案 0 :(得分:0)
在xml中添加到textview
android:gravity="center_vertical|center_horizontal"
您的文字将始终位于中心位置。
答案 1 :(得分:0)
我找到了解决方案:)这确实是一个在文本框中添加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"
/>
现在,textview与图标右侧对齐,宽度与小圆圈的大小相同。一个grafity:中心运作良好。