Android屏幕中的图像文字,如Facebook中的消息按钮

时间:2013-03-15 15:27:25

标签: android android-layout

我想在Android Button中发送通知Activity,与Facebook中的通知按钮相同。我尝试ImageButtonButton来执行此操作,但我无法在同一图层中显示在图像上绘制的文本。为什么呢?

3 个答案:

答案 0 :(得分:2)

如果我的问题正确并且您需要包含通知计数的红色圆圈,则可以创建一个drawable并将其用作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以控制其在图像上的位置。

答案 1 :(得分:1)

如果要在图像上显示永久文本,则快捷方式选项是使用图像编辑软件并在图像上写入文本。 然后使用ImageButton并放置图像。

答案 2 :(得分:0)

我修改了答案并提出了解决方案

var geosearch = L.esri.Geocoding.geosearch(...);

// Add control to the map
map.addControl(geosearch);

// Remove control from the map
map.removeControl(geosearch);

xml样式,将其放在drawable

<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>

在我的情况下,当文字是三个字符时,我说9 +