2013-11-04 5 views
2

투명 검정색 레이어가없는 DialogFragment를 만들거나 적어도 흰색을 투명하게 바꿔야합니다.DialogFragment 투명 검정색 제거

는 SO 대답 다른에서이 트릭을 사용하려고하지만, 내가보고 무엇을하지 : 당신이 이미지에서 볼 수 있듯이, 대화 주위에 붉은 영역이 getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.RED));

, 그러나 아니다 내가 찾는 사람은 다른 배경이 있어야합니다. https://www.dropbox.com/s/4hlgil6btxtqcg4/dialog.png

아이디어가 있거나 해결 방법이 있으면 나와 공유하십시오.

감사합니다.

styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

    <style name="MyDialog" parent="@android:style/Theme.Dialog"> 
     <item name="android:windowFrame">@null</item> 
     <item name="android:windowBackground">@color/orange_transparent</item> 
     <item name="android:windowIsFloating">false</item> 
     <item name="android:windowContentOverlay">@null</item> 
     <item name="android:windowTitleStyle">@null</item> 
     <item name="android:colorBackgroundCacheHint">@null</item> 
     <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
     <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
     <item name="android:gravity">center</item> 
    </style> 

</resources> 

TestDialogFragment

public class TestDialogFragment extends DialogFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setStyle(DialogFragment.STYLE_NO_TITLE, R.style.MyDialog); 
    } 
} 

답변

7

당신은 대화 스타일로 사용자 정의 색상에 false로 android:windowIsFloatingandroid:windowBackground을 설정해야 투명한 색으로 설정하십시오 :

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

또는 대화 상자에 사용자 정의 레이아웃을 만드십시오. 여기서는 example입니다.

4

당신은 할 수 있습니다 :

+0

일부 symply - setBackgroundDrawableResource (android.R.color.transparent)를 사용할 수 있습니다. – Kota1921