2011-12-12 24 views
5

Tôi muốn thiết kế giao diện người dùng sau. Ai có thể cho tôi một ví dụ hoặc đề xuất một số mã nguồn để thực hiện?Trợ giúp giao diện người dùng cho Thông báo trên biểu tượng

Icon I want

+0

Bạn muốn làm gì? Biểu tượng, văn bản, biểu tượng ở góc, đánh số? Mã đằng sau nó hoặc đồ họa? – Tobbe

+2

Tôi hoàn toàn tin tưởng rằng tôi đã trả lời câu hỏi này ở đây rồi. Hãy tìm kiếm một chút xung quanh, câu trả lời chắc chắn là trên SO. –

+0

@Tobbe Tôi chỉ muốn đồ họa i-e xml – Altaf

Trả lời

9

Here is Project on Git Hub về thấy phù hiệu vào các mặt hàng khác nhau, nhưng bên trong ứng dụng của bạn (tức TextView, TabHost, ImageView vv)

Về hiển thị huy hiệu trên biểu tượng ứng dụng, điều này là không thể, bởi vì đây không phải là cách android hiển thị thông báo. Khung android hỗ trợ xử lý thông báo bằng cách sử dụng Status bar Notifications

+0

Biểu tượng sms BUt có thông báo trên biểu tượng và cách hoạt động của nó nếu không phải là cách android ??????????? –

+0

Có, một số thiết bị Android samsung hiển thị huy hiệu biểu tượng trong các ứng dụng được chọn. Nó có thể là nhà cung cấp cụ thể. bạn đang nói về thiết bị, os và nhà cung cấp nào? –

+0

Tôi có Samsung Galaxy Ace và Phiên bản Android là 2.3.3. Bạn có thể cho tôi biết làm thế nào để làm như vậy thông báo biểu tượng ứng dụng? Tôi cần mẫu, nếu bạn biết nơi để xem. –

2

Bạn có thể sử dụng một RelativeLayout với hai đứa con, một cho biểu tượng và một cho các huy hiệu. Biểu tượng cần thêm phần đệm để huy hiệu hơi nằm ngoài nó. Huy hiệu được đặt thẳng hàng với parentTop và parentRight.

6

Nếu bạn muốn thiết lập các biểu tượng thông báo ở góc trên cùng bên trái nó cũng đơn giản như những mảnh tiếp theo của mã:

Bitmap1 phải lớn hơn bitmap2, và trong trường hợp của bạn tôi sẽ tư vấn cho nó để là hình ảnh PNG có nền trong suốt để cho phép bong bóng thông báo nằm ngoài phần còn lại của hình ảnh.

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

Nếu không, nếu bạn muốn ở góc trên bên phải, bạn nên thử bất kỳ thông số kỹ thuật nào khác cho Canvas.drawBitmap.

Ví dụ:

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

Hãy thử làm một cái gì đó như:

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

Nếu tất cả các bạn muốn là làm thế nào để làm điều đó trên XML, sau đó bạn nên tạo một RelativeLayout và sau đó vào nó thêm cả hình ảnh và căn chỉnh bong bóng thông báo ở bên phải. Và điều đó sẽ làm được điều đó. Bạn sẽ vẫn phải có một hình ảnh PNG với nền trong suốt.

Tôi hy vọng điều đó là đủ cho những gì bạn muốn làm.

+1

+1 để trả lời bằng cả cách đặt nó ra trong XML và triển khai. –

+0

+1 cho câu trả lời hay, hãy giải thích chi tiết ở đâu để thực hiện nó .... – Dhana

2

Đây là mã nguồn của bạn cho màn hình hiển thị biểu tượng tiện ích con biểu tượng tiện ích ứng dụng này.

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

và bạn cũng cần tệp badge_count2.xml drawable này.

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

Các vấn đề liên quan