2011-12-31 44 views
5

Tôi có thông báo bánh mì nướng tùy chỉnh có hình ảnh và văn bản. Các bánh mì nướng tùy chỉnh hoạt động tốt tuy nhiên tôi tự hỏi làm thế nào để tôi làm cho bánh mì nướng tùy chỉnh của tôi kế thừa các bánh mì nướng mặc định nhìn và cảm nhận? Tôi muốn nó trông giống như mặc định với các góc và viền được làm tròn đẹp mắt.Android: Thông báo bánh mì nướng tùy chỉnh Thừa kế bánh mì nướng mặc định

Đây là những gì bánh mì nướng tùy chỉnh của tôi trông giống như.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toast_layout_root" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:background="#DAAA"> 
    <ImageView android:id="@+id/chatIcon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="10dp" 
     android:src="@drawable/ic_chat"/> 
    <TextView android:id="@+id/text" 
     android:text="@string/unread_message_toast" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:textColor="#FFF" 
       /> 
</LinearLayout> 

Trả lời

6

tôi sử dụng này trong một trong những ứng dụng của tôi. Thay đổi một vài thứ xung quanh và nó sẽ làm việc cho bạn quá.

Toast ImageToast = new Toast(getBaseContext()); 
       LinearLayout toastLayout = new LinearLayout(
         getBaseContext()); 
       toastLayout.setOrientation(LinearLayout.HORIZONTAL); 
       ImageView image = new ImageView(getBaseContext()); 
       image.setImageResource(R.drawable.easter_egg); 
       toastLayout.addView(image); 
       ImageToast.setView(toastLayout); 
       ImageToast.setDuration(Toast.LENGTH_SHORT); 
       ImageToast.show(); 
+0

Đó là tuyệt vời! Rất linh hoạt. Điều này có thể được tái sử dụng mà không cần phải thêm các bố cục XML và quản lý các yếu tố ID. Trước đây tôi đã sử dụng phương pháp inflator - không dễ tái sử dụng. +1 – iozee

+1

Điều này có vẻ không hoạt động nữa. Ném một ngoại lệ: java.lang.RuntimeException: Bánh mì nướng này không được tạo bằng Toast.makeText() – Silmarilos

0

Hãy thử điều này

<style name="Themename" parent="android:Theme.dialog"> 

từ developer.android.com/guide/topics/ui/themes.html

0

Hãy thử mã bên dưới.

Làm tăng lượt xem từ bố cục XML và đặt tên nó là inflated_xml_view.

Toast toastView = new Toast(this); 
    toastView.setView(inflated_xml_view); 
    toastView.setDuration(Toast.LENGTH_LONG); 
    toastView.setGravity(Gravity.CENTER, 0,0); 
    toastView.show(); 
+0

Cảm ơn bạn đã trả lời, tôi xin lỗi vì tôi đã không quay lại với bạn. Tôi sẽ cố gắng tối nay và trao giải thưởng cho người chiến thắng. – EpicOfChaos

1

Để có được nền mặc định với các góc bo tròn đẹp (trên kẹo) sử dụng:

android:background="@android:drawable/toast_frame" 

hoặc

android:background="?android:attr/toastFrameBackground" 

Nó sẽ cung cấp cho các nền Toast tùy theo phiên bản của Android , nếu bạn muốn mới nhất tôi đề nghị tìm kiếm toast_frame.9.png tệp theo ..sdk \ platforms \ android- [muộn phiên bản st] \ data \ res \ drawable- [mật độ]

Text Style:

android:textAppearance="@android:style/TextAppearance.Toast" 
    android:textColor="@android:color/bright_foreground_dark" 
    android:shadowColor="#BB000000" 
    android:shadowRadius="2.75" 

Nguồn: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/transient_notification.xml

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