2011-12-21 44 views
17

Xin chào Tôi có bố cục mà tôi đang sử dụng để lấp đầy trang của mình và tôi phải đặt hình nền được giữ trong drawable folder trong bố cục đó.Bố cục Android nền alpha

Tôi muốn sau đó đặt alpha value của hình ảnh thành thứ gì đó khá thấp gần như làm cho hình ảnh giống như dấu nước.

xml của tôi trông giống như

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/background" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:background="@drawable/main_background" > 

Như bạn có thể thấy tôi đã gán một id để bố trí

Tôi nghĩ trong onCreate của tôi, tôi có thể làm một cái gì đó như thế này?

View backgroundimage = (View) findViewById(R.id.background); 
backgroundimage.setAlpha(80); 

Điều này không hoạt động tuy nhiên tôi nghi ngờ vì tôi đang cố gắng chạy nền là View tôi nên làm gì?

Trả lời

36

Cố gắng sử dụng:

Drawable.setAlpha(); 

Bạn nên làm một cái gì đó như thế này:

View backgroundImage = findViewById(R.id.background); 
Drawable background = backgroundImage.getBackground(); 
background.setAlpha(80); 
+2

Mặc dù phương pháp này hoạt động, nó xuất hiện để có được trạng thái ban đầu hoặc 100% alpha, bạn có thể cần phải sử dụng thang tỷ lệ 0-1000. Vì vậy, nếu bạn đang cố gắng để có được một nút để xem 50% alpha, bạn thực sự có thể phải setAlpha (200) thay vì setAlpha (50) ... ít nhất bằng cách sử dụng API 19 trên một Button ... do đó, đặt lại nút trở lại nhìn ban đầu, tôi phải setAlpha (1000) ... – whyoz

+3

Độ mờ 100% bằng 255, không phải 1000 – snapix

33

Nếu bạn muốn thiết lập alpha trong xml sau đó u có thể thử này:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/background" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:background="#CC000000" > 

2 chữ số đầu tiên được sử dụng để đặt alpha ở đây alpha là 80% tiếp theo 6 chữ số cho mã màu

Do đó, alpha được đặt trong mã thập lục phân. FF = 100% và 00 = 0%, do đó 80% không phải là 80 trong hệ thập lục phân, để có thêm giá trị tiêu chuẩn, hãy xem this bài đăng.

1

Bạn có thể đặt Alpha cho bản vẽ không phải lượt xem! Bạn có thể có được nền như một drawable và làm như thế này:

View backgroundimage = (View) findViewById(R.id.background); 
backgroundimage.getBackground().setAlpha(80); 
2

Sử dụng này trên LinearLayout bạn

android: background = "# 92.000.000"

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