自定义对话框上的透明背景

时间:2015-04-26 01:21:48

标签: android background dialog transparency

我试图在我的Custon Dialog上获得透明背景,但我无法在Android 4.4.4上完成它。它仅适用于Android 5.1。

我正在寻找的结果是这样的: http://www.americocarelli.com.br/android_5.1.png

但我明白了:http://www.americocarelli.com.br/android_4.4.4.png

这是我的自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/dialogo_layout_root"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/transparente"
    android:windowBackground="@color/transparente">

    <TextView
        android:id="@+id/titulo_dialogo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:gravity="center_horizontal"
        android:paddingStart="@dimen/paddingStartEnd"
        android:paddingEnd="@dimen/paddingStartEnd"
        android:paddingTop="@dimen/paddingTopBottom"
        android:paddingBottom="@dimen/paddingTopBottom"
        android:background="@color/fundoEscuro"
        android:textSize="@dimen/abc_text_size_title_material_toolbar"/>

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/drawer_shadow_down"
        android:layout_below="@id/titulo_dialogo"
        android:contentDescription="@string/..."/>

    <TextView
        android:id="@+id/mensagem_dialogo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/titulo_dialogo"
        android:paddingStart="@dimen/paddingStartEnd"
        android:paddingEnd="@dimen/paddingStartEnd"
        android:paddingTop="8dp"
        android:paddingBottom="@dimen/paddingTopBottom"
        android:background="@color/transparente"/>

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/mensagem_dialogo"
        android:layout_alignParentStart="true"
        android:shrinkColumns="*"
        android:stretchColumns="*">

        <TableRow>
            <Button
                android:id="@+id/BotaoNegativo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/button_shape"
                android:textAllCaps="false"/>

            <Button
                android:id="@+id/BotaoPositivo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/button_shape"
                android:textAllCaps="false"/>
        </TableRow>
    </TableLayout>
</RelativeLayout>

在我的style.xml上,我得到了这个定义:

<color name="transparente">#00FFFFFF</color>

这是代码:

public class Dialogos extends DialogFragment {
    private static final String PARAMETRO_TITULO = "titulo";
    private static final String PARAMETRO_MENSAGEM = "mensagem";
    private static final String PARAMETRO_TXT_BTN_POSITIVO = "txtBtnPositivo";
    private static final String PARAMETRO_TXT_BTN_NEGATIVO = "txtBtnNegativo";

    public Dialogos(){
    }

    public static Dialogos newInstance(int titulo, int mensagem, int txtBtnPositivo, int txtBtnNegativo) {
        Dialogos fragment = new Dialogos();
        Bundle args = new Bundle();

        args.putInt(PARAMETRO_TITULO, titulo);
        args.putInt(PARAMETRO_MENSAGEM, mensagem);
        args.putInt(PARAMETRO_TXT_BTN_POSITIVO, txtBtnPositivo);
        args.putInt(PARAMETRO_TXT_BTN_NEGATIVO, txtBtnNegativo);

        fragment.setArguments(args);

        return fragment;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        int titulo = getArguments().getInt(PARAMETRO_TITULO);
        int mensagem = getArguments().getInt(PARAMETRO_MENSAGEM);
        int txtBtnPositivo = getArguments().getInt(PARAMETRO_TXT_BTN_POSITIVO);
        int txtBtnNegativo = getArguments().getInt(PARAMETRO_TXT_BTN_NEGATIVO);

        Typeface fonte = Typeface.createFromAsset(getActivity().getAssets(), "Fonts/RegencieLightAlt.ttf");

        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.layout.mensagem_dialogo, null);
        TextView tvTitulo = (TextView) view.findViewById(R.id.titulo_dialogo);
        TextView tvMensagem = (TextView) view.findViewById(R.id.mensagem_dialogo);

        tvTitulo.setTypeface(fonte);
        tvMensagem.setTypeface(fonte);

        if (titulo != 0)
            tvTitulo.setText(titulo);

        Button btnPositivo = (Button) view.findViewById(R.id.BotaoPositivo);
        Button btnNegativo = (Button) view.findViewById(R.id.BotaoNegativo);

        tvMensagem.setText(mensagem);

        btnPositivo.setTypeface(fonte);
        btnNegativo.setTypeface(fonte);

        btnPositivo.setText(txtBtnPositivo);
        btnNegativo.setText(txtBtnNegativo);

        btnPositivo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, getActivity().getIntent());
            }
        });

        btnNegativo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_CANCELED, getActivity().getIntent());
            }
        });

        builder.setView(view);

        return builder.create();
    }
}

0 个答案:

没有答案