您的位置:首页 > 移动开发 > Android开发

android 组件之Dialog(自定义)

2011-05-09 18:41 435 查看
  主要实现自定义的dialog.

  代码:

//

/**
 *
 * 实现自定义的Dialog
 */
public class DialogTestActivity extends Activity {

 Dialog myDialog = null;// Dialog对象

 Button btn_showDialog;// 显示dialog

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  btn_showDialog = (Button) findViewById(R.id.btn_showDialog);
  btn_showDialog.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    showHint("提示");
   }
  });
 }

 // /////自定义的显示////////
 protected void showHint(String strReasons) {
  // ////////提示//////////
  if (myDialog != null) {
   myDialog.dismiss();
  }
  // R.style.dialog 为自定义的风格
  myDialog = new Dialog(DialogTestActivity.this, R.style.dialog);
  myDialog.setContentView(R.layout.messagealert);
  myDialog.show();
  TextView success_or_fail = (TextView) myDialog
    .findViewById(R.id.success_or_fail);
  success_or_fail.setText(strReasons);
  Button alertbtn = (Button) myDialog.findViewById(R.id.alertbtn);
  alertbtn.setOnClickListener(new OnClickListener() {
   /* 设置跳出窗口的返回事件 */
   @Override
   public void onClick(View v) {
    myDialog.dismiss();
   }
  });
  // //////////////////
 }
}

 

// ///////////////////////////////////////////////////////////布局相关/////////////////////////////////////////////////

 

path /DialogTest/res/layout/main.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:gravity="center"
 android:background="@color/white"
 android:orientation="horizontal"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"> 
 <Button
  android:id="@+id/btn_showDialog"
  android:textColor="@color/black"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="showDialog"
  />
</LinearLayout> 
/////////----------//////////

path /DialogTest/res/layout/messagealert.xml

 

<?xml version="1.0" encoding="utf-8"?>
<!-- 带文本和一个按钮的提示框 -->

<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:background="@drawable/dialogbg">
<!-- 提示框背景↓-->
 <ImageView
  android:id="@+id/fst_bg"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_alignParentLeft="true"
  android:layout_marginLeft="10px"
  android:src="@drawable/dialogback1"
  />
  <!--  android:layout_toRightOf="@+id/fst_bg" android:layout_toLeftOf="@+id/last_bg"-->
 <ImageView
  android:id="@+id/sec_bg"
  android:layout_width="400px"
  android:layout_height="wrap_content"
  android:background="@drawable/dialogback0"
  android:layout_alignTop="@+id/fst_bg"
  android:layout_alignBottom="@+id/fst_bg"
  android:layout_marginLeft="32px"
  
   />
 <ImageView
  android:id="@+id/last_bg"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/dialogback2"
  android:layout_alignTop="@+id/fst_bg"
  android:layout_alignParentRight="true"
  android:layout_marginRight="10px"
   />
<!-- 提示框背景 ↑-->

 <!-- 成功或者失败的TextView--> 
  <TextView
  android:id="@+id/success_or_fail"
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:layout_toRightOf="@+id/fst_bg"
  android:layout_marginTop="30px"
  android:textColor="@color/black"
  android:text="success_or_fail">
 </TextView>
 
 <!-- 提示信息()需要用的话 在程序中设置其text-->  
 <TextView
  android:id="@+id/alert_message"
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:textColor="@color/black"
  android:layout_below="@+id/success_or_fail"
  android:layout_alignLeft="@+id/success_or_fail"
  android:layout_marginTop="20px"
  android:text="alert_message"
  />
 
 <!-- 操作按钮 -->   
 <Button
  android:id="@+id/alertbtn"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/surebtnselector"
  android:visibility="visible"
  android:layout_marginBottom="30px"
  android:layout_alignBottom="@+id/sec_bg"
  android:layout_marginLeft="30px"
   />

</RelativeLayout>

 

////////////----------------------------------////////////////////////////

path /DialogTest/res/values/dialog.xml

 

<!-- 自定义Dialog风格 -->
<resources>
    <style name="dialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">@drawable/dialogbg</item>
        <item name="android:windowBackground">@drawable/dialogbg</item>

        <!-- 屏幕背景是否变暗 -->
        <item name="android:backgroundDimEnabled">true</item>
      
    </style>
</resources>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息