2011-09-13 32 views
12

Trong ứng dụng của tôi, tôi đã đặt hình nền của linearlayout cấp cao nhất và sau đó làm mờ nền tôi đặt alpha thành .2 nhưng điều này tạo ra một vấn đề kỳ lạ trong đó nó cũng đặt alpha cho tất cả trẻ em của bố cục, ngay cả khi tôi xác định rõ ràng một giá trị alpha khác ở trẻ em.Tại sao chế độ xem con kế thừa giá trị alpha từ bố cục gốc

Có thể đặt giá trị alpha của cha/mẹ và không ảnh hưởng đến giá trị của trẻ không?

Có cách nào thích hợp để đặt alpha ở chế độ xem cấp cao nhất mà không ảnh hưởng đến alpha trên các chế độ xem đó?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ll1" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:background="@drawable/bg" 
    android:alpha="0.2"> 
     <Button android:id="@+id/btn1" 
      android:text="Set 1" 
      android:layout_width="300px" 
      android:layout_height="150px" 
      android:layout_gravity="center" 
      android:background="@drawable/button1" 
      android:tag="1" 
      android:alpha="1"/> 
     <Button android:id="@+id/btn2" 
      android:text="Set 2" 
      android:layout_width="300px" 
      android:layout_height="150px" 
      android:layout_gravity="center" 
      android:background="@drawable/button2" 
      android:tag="2"/> 
</LinearLayout> 

Trả lời

20

Đó chính xác là cách nó được dự định hoạt động.

Tại sao không chỉ thay đổi alpha nền của bạn có thể kéo "@ drawable/bg" thành 0,2?

Ngoài ra, hãy thử một FrameLayout với cấu trúc cơ bản này:

<FrameLayout> 
    <ImageView 
     android:background="@drawable/bg" 
     android:alpha="0.2" /> 
    <LinearLayout> 
     <Button /> 
     <Button /> 
    </LinearLayout>  
</FrameLayout> 
+0

ý tưởng rất hay! =) –

+0

ides đẹp, nó làm việc ra cho tôi ... – krisDrOid

+0

Cảm ơn công việc cho tôi –

1

Bạn sẽ cần sử dụng framelayout. khác khôn ngoan nút của bạn được mở ra bởi một linearlayout với bộ aplha mà cũng sẽ ảnh hưởng đến các nút.

3

Một cách là để thiết lập giá trị alpha trong hash-mã cho màu ví dụ: thay vì sử dụng #RRGGBB #AARRGGBB. Điều này đảm bảo rằng giá trị alpha không được kế thừa.

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