在应用程序的顶角绘制带有计数的红色圆圈

时间:2014-10-14 10:28:26

标签: android

我是Android新手,我需要在我的应用程序的右上角显示计数。

主页面有网格视图。这是页面的xml代码。

我可以从代码中显示圆圈吗?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/lay_main"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#8c5630"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <GridView
            android:id="@+id/main_gridview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/adView"
            android:layout_margin="5dp"
            android:layout_marginTop="4dp"
            android:horizontalSpacing="10dp"
            android:numColumns="2"
            android:verticalSpacing="10dp" >
        </GridView>

        <com.google.ads.AdView
            android:id="@+id/adView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_gravity="center"
            ads:adSize="BANNER"
            ads:adUnitId="@string/admob_id"
            ads:loadAdOnCreate="true"
            ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID" />
    </RelativeLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:6)

您可以使用textview + shape进行布局,如下所示:

 <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center">


                <ImageView
                    android:id="@+id/family_hub_imageview"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:src="@drawable/family_hub_icon"/>


                <TextView
                    android:id="@+id/family_hub_tv_count"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/red_circle"
                    android:padding="3dp"
                    android:text="20"
                    android:textColor="@color/white"
                    android:textSize="11sp"
                    android:textStyle="bold"/>
            </RelativeLayout>

red_circle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval">

    <solid android:color="@color/red"/>
    <stroke
    android:width="1dp"
    android:color="@color/white"/>
</shape>

答案 1 :(得分:1)

是的,你可以展示它。在你要绘制圆圈的位置ImageView。现在,在您的Java代码中,在初始化ImageView之后放置这些行。

    GradientDrawable gd = new GradientDrawable();
    gd.setShape(GradientDrawable.OVAL);
    gd.setColor(Color.rgb(134, 135, 255));
    gd.setCornerRadius(5);
    gd.setStroke(4, Color.rgb(255, 255, 255));
    yourImageView.setImageDrawable(gd);