我想Button
在 AndroidActivity
中发出与 Facebook 中的通知按钮相同的通知。我尝试过ImageButton
这样Button
做,但未能显示在同一图层中绘制在图像上的文本。为什么?
问问题
1288 次
3 回答
2
如果我的问题是正确的,并且您需要包含通知计数的红色圆圈,则可以创建一个可绘制对象并将其用作 TextView 的背景
这是一个示例圆边矩形
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"/>
<solid android:color="#FFFFFF"/>
<corners android:radius="3dp"/>
</shape>
</item>
<item>
<shape>
<corners android:radius="3dp"/>
<solid android:color="#F00"/>
</shape>
</item>
</layer-list>
那么你所需要的就是将它用作 TextView 的背景
编辑:使用 FrameLayout 使通知出现在 ImageView 上
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image" />
<TextView
android:id="@+id/notification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:background="@drawable/red_notification_frame"
android:gravity="center"
android:minWidth="15dp"
android:paddingLeft="1dp"
android:paddingRight="1dp"
android:textColor="#fff"
android:textStyle="bold" />
</FrameLayout>
并更改 TextView 的 layout_gravity 以控制其在图像上的位置。
于 2013-03-15T15:45:30.933 回答
1
如果您希望在图像上显示永久文本,则一种快捷方式是使用图像编辑软件并将文本写入图像上。然后使用 ImageButton 并放置 Image。
于 2013-03-15T16:49:25.823 回答
0
我修改了一个答案并想出了一个解决方案
<RelativeLayout
android:layout_height="102dp"
android:layout_width="102dp"
android:padding="15dp">
<ImageView
android:id="@+id/myImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/envelope" />
<TextView
android:id="@+id/myImageViewText"
android:layout_width="1dp"
android:layout_height="12dp"
android:layout_alignLeft="@+id/myImageView"
android:layout_alignTop="@+id/myImageView"
android:layout_alignRight="@+id/myImageView"
android:layout_alignBottom="@+id/myImageView"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_marginTop="43dp"
android:layout_marginLeft="43dp"
android:gravity="center"
android:text="0"
android:background="@drawable/rounded_corners"
android:textColor="@android:color/white" />
</RelativeLayout>
xml样式,放到drawable中
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
android:width="1dp"
android:color="@android:color/holo_red_dark" />
<solid android:color="@android:color/holo_red_light" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:radius="20dp" />
</shape>
在我的情况下,当文本超出三个字符时,我说 9+
于 2016-02-05T12:22:29.663 回答