2012-12-14 2 views
3

약간의 여백, 둥근 모서리 및 알파 값 0.3이있는 직사각형 LinearLayout이 있습니다. 이 레이아웃 안에 다른 위치에 다른 이미지를 표시 할 때 4 가지 레이아웃이 있습니다.Android : 다른 알파 값을 가진 중첩 선형 레이아웃

제 1 차 레이아웃이 0.3이지만, 제 아이가 완벽하게 보이게하거나 부모 알파의 영향을받지 않기를 바랍니다. 어떻게 제발 할 수 있는지 궁금합니다. 나는 아이들 레이아웃에 알파 = 1로 설정하려고 시도했지만 작동하지 않았다. 이 값을 0으로 설정하면 자식 레이아웃이 사라 지므로 0.3보다 아래로 줄일 수 있지만 부모보다 위에있는 값은 줄일 수없는 것처럼 보입니다. 그게 버그 야? 아니면 내가 잘못하고 있니?

감사합니다.

+0

코드를 공유하십시오. – RobinHood

답변

11

나는 그것을 실제로 알아 냈다! 색상은 AARRGGBB이므로 알파 채널 (AA)을 수정하면 어린이가 아닌 현재 배경에만 영향을줍니다! 다른 해결책이 있다면, 나는 그것을 듣게되어 기쁘다. 감사!

+0

그래,이 방법이 그것을 할 수 있습니다. 이 응답은 완전한 방법을 제공합니다 : http://stackoverflow.com/questions/15852122/hex-transparency-in-colors –

+0

이것은 정말 작동합니다! – Amos

8

this 솔루션으로 문제를 해결할 수 있습니다. 그것은 완벽하게 작동합니다.

parentView.getBackground().setAlpha(128); //your parent view's visibility is now %50 and child view's visibility remains same. 
+1

덕분에 +1 도움이 되셨습니다 :) –

+1

위대한 대답, 고마워요! – user2235615

+1

감사합니다. 친구가되었습니다. :) –

0

이 늦게 대답

수 있습니다하지만 유 유는 그 부모에 의해

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/aa" //Your own Image in root element 
android:orientation="vertical" > 

    <RelativeLayout 
    android:id="@+id/RLMain" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#CCFFFFFF" > //Your Alpha Value 

    <ImageView 
     android:id="@+id/iv1" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="86dp" 
     android:src="#FF0000" />  //Your Child Image 

</RelativeLayout> 

1

은 영향을받지에서 아이 뷰를 방지하기 위해 필요한 것을 얻을 희망 코드 아래에이 시도 배경 ...

진실 : 알파가 아닌 255 개의 '컬러'는 실제로 색상이 아닙니다. 색조! 따라서

: 아이 뷰 배경인지 모양은 다음 중
(a) child.setBackgroundColor() 지정한 정확한 색이 색 알파 255 가지는 경우 :
(b)는 복합 child.setBackgroundColor()이고 부모 배경은 그렇지 않습니다.

절대적으로 하위 배경을 제어하려면 부모를 무시하고 선택한 색조와 선택한 알파 - 255 배경을 혼합 한 세 번째 색을 만들어야합니다.

은 배경을 지명해야합니다! (배경색에 대해서만 색조를 표현할 수 있습니다. 명시 적으로 지정하지 않으면 테마 배경이 결국 사용됩니다.)

이 코드는 몇 달 동안 발견되어 완벽한 결과를 제공합니다.

childView.setBackgroundColor(ColorUtils.compositeColors(yourTint, yourBackground); 

내 대답은 내 질문보기 here을 참조하십시오.

관련 문제