2016-05-23 9 views
0

を削除:のAndroid DialogFragmentは、私は次のコードでDialogFragmentクラスを持つ白のボーダーに

public class LeavingAppDialog extends DialogFragment { 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 

    LayoutInflater inflater = getActivity().getLayoutInflater(); 
    View v = inflater.inflate(R.layout.leaving_app_dialog, null); 
    builder.setView(v); 

    Typeface segoeuib = Typeface.createFromAsset(getActivity().getApplicationContext().getAssets(), "fonts/segoeuib.ttf"); 
    TextView text = (TextView) v.findViewById(R.id.msg_dialog); 
    text.setTypeface(segoeuib); 

    Dialog dialog = builder.create(); 



    return dialog; 
    } 
} 

をこのダイアログは、カスタムレイアウトを使用して、ここでそのコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#00000000"> 

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true"> 

    <ImageView 
     android:layout_width="300dp" 
     android:layout_height="300dp" 
     android:id="@+id/imageView" 
     android:src="@drawable/box_1_fit" 
     android:scaleType="centerInside" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:background="#00000000" /> 

    <FrameLayout 
     android:layout_width="275dp" 
     android:layout_height="150dp" 
     android:id="@+id/frameLayout" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="LEAVING THIS APP?" 
      android:id="@+id/msg_dialog" 
      android:textSize="35dp" 
      android:layout_gravity="center_horizontal|top" 
      android:gravity="center_horizontal|top" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" /> 
    </FrameLayout> 

    <Button 
     android:layout_width="100dp" 
     android:layout_height="37dp" 
     android:id="@+id/btn_cancel" 
     android:background="@drawable/cancel_button_fit" 
     android:singleLine="false" 
     android:layout_alignRight="@+id/frameLayout" 
     android:layout_alignEnd="@+id/frameLayout" 
     android:layout_marginTop="75dp" 
     android:layout_below="@+id/frameLayout" 
     android:layout_marginRight="25dp" 
     android:onClick="ExitApp"/> 

    <Button 
     android:layout_width="100dp" 
     android:layout_height="37dp" 
     android:id="@+id/btn_accept" 
      android:background="@drawable/accept_button_fit" 
      android:layout_below="@+id/frameLayout" 
      android:layout_alignLeft="@+id/frameLayout" 
      android:layout_alignStart="@+id/frameLayout" 
      android:layout_marginTop="75dp" 
      android:layout_marginLeft="25dp" 
      android:onClick="ExitApp"/> 
    </RelativeLayout> 
</RelativeLayout> 

問題がオンになっていますスクリーンショット。私はこれらの白い国境を取り除く必要があります。私はレイアウトエディタやコードを通して背景色を透明に設定しようとしました。私はすべてのレイアウトとイメージ自体に透明なバックグラウンドカラーを設定しようとしましたが、それはすべて効果がありませんでした。私のソースイメージはpngファイルであり、本当に透明な背景があるので、問題はソースイメージにありません。

applied some blur for privacy

+5

はこの質問を見てください:http://stackoverflow.com/questions/10795078/dialog-with-transparent-background-in-android – Rehan

答えて

0

透明なセット背景:

このように:mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

+0

私はこの方法を試してみた、それは動作しませんでした。それは私がどこからでも呼び出そうとするどこでもgetWindow()からnullのコメントを返します。 –

0

このカスタムアラートダイアログクラスを試してみてください:

class CustomAlertDialog extends AlertDialog { 
    CustomAlertDialog(Context context) { 
     super(context); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
     setContentView(R.layout.view_custom_alert_dialog); 

     RMTextView txtTitle = (RMTextView) findViewById(R.id.txt_alert_title); 

     txtTitle.setText("Title"); 
    } 
} 
0

この方法を試してみてください。

mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
// mDialog.getWindow().setBackgroundDrawableResource("#0069ad"); 
mDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 
関連する問題