2013-07-23 72 views
6

Tôi muốn tùy chỉnh bánh mì nướng mà không cần tạo bố cục tùy chỉnh bằng cách sửa đổi Bánh mì nướng mặc định. Tôi muốn màu đỏ cho nền bánh mì nướng, và màu trắng cho màu văn bản bánh mì nướng và tôi muốn làm cho nền bánh mì nướng của tôi lớn hơn mà bánh mì nướng mặc định. khi tôi chạy ứng dụng của tôi, không có gì thay đổi từ bánh mì nướng của tôi, nó vẫn hiển thị trong bánh mì nướng mặc định.Cách tùy chỉnh màu nền, màu nền và màu văn bản cho Bánh mì nướng trong android

Đây là cách tôi tùy chỉnh bánh mì nướng của tôi:

if (seriesSelection == null) { 
    Toast toast = Toast.makeText(getApplicationContext(), "tidak ada chart yang dipilih", Toast.LENGTH_SHORT); 
    toast.setGravity(Gravity.CENTER, 50, 50); 
    toast.getView().setPadding(10, 10, 10, 10); 
    toast.getView().setBackgroundColor(Color.RED); 
    TextView text = (TextView) toast.getView().findViewById(android.R.id.message); 
    text.setTextColor(Color.WHITE); 
    text.setTextSize(14); 
} else { 
    Toast toast= Toast.makeText(
      getApplicationContext(), 
      "Nilai " + listData.get(seriesSelection.getPointIndex()).getInuNilai()+ 
      " tanggal " + listData.get(seriesSelection.getPointIndex()).getTanggal(), 
      Toast.LENGTH_SHORT); 
    toast.setGravity(Gravity.CENTER, 50, 50); 
    toast.getView().setPadding(10, 10, 10, 10); 
    toast.getView().setBackgroundColor(Color.RED); 
    text.setTextColor(Color.WHITE); 
    text.setTextSize(14); 
    toast.show(); 
} 
+0

Đối với tôi, trường hợp 'khác' hiển thị bánh mì nướng màu đỏ với văn bản màu trắng có đệm áp dụng. – sandrstar

Trả lời

9

Bạn có thể có chế độ xem tùy chỉnh làm tăng lượt xem tùy chỉnh và sử dụng toast.setView(layout).

Ví dụ:

LayoutInflater inflater = getLayoutInflater(); 
View layout = inflater.inflate(R.layout.custom_toast, 
           (ViewGroup) findViewById(R.id.toast_layout_root)); 

TextView text = (TextView) layout.findViewById(R.id.text); 
text.setText("This is a custom toast"); 

Toast toast = new Toast(getApplicationContext()); 
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); 
toast.setDuration(Toast.LENGTH_LONG); 
toast.setView(layout); 
toast.show(); 

Và xml của bạn

<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="8dp" 
       android:background="#DAAA" 
       > 
    <ImageView android:src="@drawable/droid" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="8dp" 
       /> 
    <TextView android:id="@+id/text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textColor="#FFF" 
       /> 
</LinearLayout> 

More info @

http://developer.android.com/guide/topics/ui/notifiers/toasts.html

Ran của bạn nếu và một phần khác của mã (riêng) nó cho thấy bánh mì nướng với nền màu đỏ và màu văn bản trắng. Tôi không thấy vấn đề gì cả. Nhưng nếu bạn cần tùy chỉnh, bạn có thể sử dụng bố cục tùy chỉnh và tăng bố cục và đặt chế độ xem thành bánh mì nướng.

Edit:

TextView của mình

TextView text = (TextView) toast.getView().findViewById(android.R.id.message); 

được khởi tạo trong nếu phần và khác phần TextView không được khởi tạo.

Khởi tạo chế độ xem văn bản bên ngoài nếu và mã khác.

Kiểm tra thư viện này được gọi là crouton mà bạn có thể tìm thấy hữu ích

https://github.com/keyboardsurfer/Crouton

+0

Tôi muốn tùy chỉnh bánh mì nướng của mình mà không cần tạo bố cục tùy chỉnh bằng cách sửa đổi Bánh mì nướng mặc định. tôi có thể? –

+1

@AoyamaNanami bạn có thể kiểm tra bài đăng ở trên. cũng mã của bạn hoạt động tốt tôi có thể nhìn thấy bánh mì nướng với nền màu đỏ và văn bản màu trắng. SO vấn đề chính xác là gì. tôi không thể tái tạo vấn đề của bạn. Tôi chạy mã của bạn bằng cách sao chép dán giống nhau. nó hoạt động tốt. Sử dụng bố cục tùy chỉnh sẽ cung cấp cho bạn thêm tùy chọn tùy chỉnh. – Raghunandan

+0

nó hoạt động .. cảm ơn bạn :) –

2

Toast có một phương pháp setView().

Bạn có thể tùy chỉnh Bánh mì nướng để hiển thị bất kỳ chế độ xem nào.

Tôi muốn nói thay vì cố gắng chỉnh sửa chế độ xem bên trong Bánh mì nướng, bạn chỉ cần tạo Chế độ xem và tự bật nó.

+0

bạn có thể cho biết cách tùy chỉnh nó không? –

0

tôi có mã rất đơn giản và dễ dàng cho tùy chỉnh một Toast cho phù hợp, bạn có thể thay đổi nền của bánh mì nướng và tô màu chữ cũng có.

Toast toast = Toast.makeText(MainActivity.this, "Added successfully", Toast.LENGTH_LONG); 
    View view1 = toast.getView(); 
    toast.getView().setPadding(20, 20, 20, 20); 
    view1.setBackgroundResource(R.color.GREEN); 
    view1.setTextColor(Color.RED); 
    toast.show(); 
Các vấn đề liên quan