当前位置: 代码迷 >> Android >> android Activity 变为Dialog的方法
  详细解决方案

android Activity 变为Dialog的方法

热度:11   发布时间:2016-05-01 11:56:10.0
android Activity 变成Dialog的方法
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:gravity="center_vertical|center_horizontal"    android:background="@drawable/dialog_bg">    <RelativeLayout         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:paddingLeft="30dip"        android:paddingTop="10dip">        <ImageView             android:id="@+id/dialog_title_image"            android:layout_alignParentLeft="true"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="@drawable/dialog_title_image"/>        <TextView             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="10dip"            android:layout_centerInParent="true"            android:text="Title"            android:layout_toRightOf="@id/dialog_title_image"            android:textColor="#000000"            android:textSize="30sp"/>            </RelativeLayout>    <TextView             android:layout_width="fill_parent"            android:layout_height="1dip"            android:background="@drawable/lins"            android:layout_marginTop="5dip"/>    <TextView         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="This is a custom dialog"        android:textColor="#000000"        android:layout_marginTop="10dip"        android:layout_marginLeft="30dip"/>    <RelativeLayout         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:paddingTop="10dip"        android:gravity="bottom|center_horizontal"        android:paddingBottom="10dip">        <Button             android:id="@+id/dialog_button_cancel"            android:layout_alignParentLeft="true"            android:layout_width="100dip"            android:layout_height="wrap_content"            android:text="确定"/>        <Button             android:id="@+id/dialog_button_ok"            android:layout_width="100dip"            android:layout_height="wrap_content"            android:layout_toRightOf="@id/dialog_button_cancel"            android:layout_marginLeft="35dip"            android:text="取消"/>    </RelativeLayout></LinearLayout>

这是sms_dialog.xml

package com.sms.activity;import android.app.Activity;import android.app.Dialog;import android.content.Context;import android.os.Bundle;public class smsDialog extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState)    {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.sms_dialog);    }    }

自定义style

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="smsDialog" parent="@android:Theme.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowNoTitle">true</item>         <item name="android:windowBackground">@drawable/dialog_bg</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowContentOverlay">@null</item>    </style></resources>

这是smsDialogStyle

然后在AndroidManifest.xml里面写下如下代码

 <activity             android:name=".smsDialog"            android:theme="@style/smsDialog"            >        </activity>

下面是调用方法

Intent smsdialog = new Intent(context, smsDialog.class);			          smsdialog.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);			          context.startActivity(smsdialog);

这是在BroadcastReceiver里面调用的 因为dialog必须依附在Activity'里面 所以在BroadcastReceiver里面不能用dialog.show 必须自定义Activity才行

图片用的一个哥们的  代码也参考了他的  他的博客忘记地址了 请原谅!

  相关解决方案