2011-12-12 78 views
5

我想要設計以下用戶界面。任何人都可以給我一個例子或建議一些實施的源代碼?通知用戶界面幫助圖標

Icon I want

+0

你想完成什麼?圖標,文字,角落中的符號,編號?它背後的代碼或圖形? – Tobbe

+2

我已經100%自信地回答了這個問題。請稍微搜索一下,答案肯定在SO上。 – 2011-12-12 15:23:41

+0

@Tobbe我只是想要圖形我的e-xml – Altaf

回答

9

就顯示在不同的項目,但你的應用程序(即TextViewTabHostImageView等)

關於顯示的應用程序圖標徽章裏面徽章Here is Project on Git Hub,這是不可能的,因爲這不是Android的方式顯示通知。 Android框架支持使用Status bar Notifications

+0

BUTSM短信圖標有圖標上的通知,如果它不工作的方式如何工作??????????? –

+0

是的,一些三星Android設備在選定的應用程序中顯示圖標徽章。它可能是供應商特定的。你在談論什麼設備,操作系統和供應商? –

+0

我有三星Galaxy Ace和Android版本是2.3.3。你能告訴我如何做這樣的應用程序圖標通知?我需要樣品,如果你知道在哪裏看到。 –

2

可以使用的RelativeLayout有兩個孩子,一個是圖標,一個用於徽章。 該圖標需要額外的填充,使徽章稍微偏離它。 徽章的位置與parentTop和parentRight對齊。

6

如果你想建立在左上角的通知圖標是爲下一段代碼一樣簡單:

Bitmap1必須大於bitmap2做大,你的情況我會把它奉勸是一個具有透明背景的PNG圖像,以允許通知氣泡在圖像的其餘部分之外。

 private Bitmap overlay(Bitmap bitmap1, Bitmap bitmap2) { 
      Bitmap bmOverlay = Bitmap.createBitmap(bitmap1.getWidth(), bitmap1.getHeight(), bitmap1.getConfig()); 
      Canvas canvas = new Canvas(bmOverlay); 
      canvas.drawBitmap(bitmap1, new Matrix(), null); 
      canvas.drawBitmap(bitmap2, new Matrix(), null); 
      return bmOverlay; 
     } 

否則,如果你想要它在右上角,你應該嘗試任何Canvas.drawBitmap的其他規範。

例如:

canvas.drawBitmap(Bitmap bitmap, float left, float top, Paint paint); 

嘗試做喜歡的事:

private Bitmap overlay(Bitmap bitmap1, Bitmap bitmap2) { 
      Bitmap bmOverlay = Bitmap.createBitmap(bitmap1.getWidth(), bitmap1.getHeight(), bitmap1.getConfig()); 
      Canvas canvas = new Canvas(bmOverlay); 
      canvas.drawBitmap(bitmap1, new Matrix(), null); 
      canvas.drawBitmap(bitmap2, bitmap1.getWidth()-bitmap2.getWidth(), 
           0,null); 
      return bmOverlay; 
     } 

如果你想一切都是如何做到這一點的XML,那麼你應該創建一個RelativeLayout的,然後在其上添加這兩個圖像並將通知氣泡對齊。這應該可以做到。您仍然必須擁有透明背景的PNG圖像。

我希望這足以滿足你想要做的事情。

+1

+1來回答如何在XML和實現中進行佈局。 –

+0

+1爲好的答案,請詳細說明在哪裏實施它.... – Dhana

2

這是您的應用程序小部件圖標徽章計數顯示的源代碼。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/main_widget" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal" 
android:layout_marginTop="20dip" 
android:focusable="true" > 

<ImageView 
    android:id="@+id/icon" 
    android:layout_width="60dip" 
    android:layout_height="60dip" 
    android:layout_marginTop="8dp" 
    android:background="@drawable/logo" 
    android:contentDescription="image" 
    android:scaleType="center" /> 

<TextView 
    android:id="@+id/title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/icon" 
    android:gravity="center" 
    android:paddingLeft="3dp" 
    android:paddingTop="10dp" 
    android:shadowColor="#000000" 
    android:shadowDx="1" 
    android:shadowDy="1" 
    android:shadowRadius="1.5" 
    android:text="@string/app_name" 
    android:textColor="#FFF" /> 

<TextView 
    android:id="@+id/txt_count" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="-10dip" 
    android:layout_toRightOf="@+id/icon" 
    android:background="@drawable/badge_count2" 
    android:contentDescription="badge" 
    android:gravity="center" 
    android:text="1" 
    android:textColor="@color/White" 
    android:textStyle="bold" /> 

</RelativeLayout> 

並且您還需要此badge_count2.xml可繪製文件。

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<solid android:color="@color/red" > 
</solid> 

<stroke 
    android:width="2dp" 
    android:color="#FFFFFF" > 
</stroke> 

<padding 
    android:bottom="2dp" 
    android:left="7dp" 
    android:right="7dp" 
    android:top="3dp" /> 

<corners android:radius="10dp" > 
</corners>