自定义输入dialog,圆角边框,去掉底部黑色背景。去掉editText黄色输入框。

一,先看看想要实现的dialog效果。

085236_9c4f_2480757.png

     要实现这要的效果,我们需要几个应该注意的关键点:

     1,如何定义圆角边框。

                bg_title_custom_dialog.xml 四周都是圆角按钮。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
     <item><shape>
            <gradient android:angle="270" android:endColor="#e1e1e1" android:startColor="#e1e1e1" />
            <corners android:topLeftRadius="15dp" android:topRightRadius="15dp" />
    </shape></item>
   
</selector>

              bg_bottom_custom_dialog.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="">
    <item><shape>
            <gradient android:angle="270" android:endColor="#e1e1e1" android:startColor="#e1e1e1" />
            <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
    </shape></item>
</selector>

2,适当的场合设置透明背景颜色。EditText设置透明背景色去掉黄色边框。

 android:background="@color/transparent"
 
 <color name="transparent">#00000000</color>

    

3,改变dialog样式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="dialog" parent="@android:style/Theme.Dialog" >
        <item name="android:windowFrame">@null</item>
        <!-- 边框 -->
        <item name="android:windowFullscreen">true</item> 
        <item name="android:windowIsFloating">true</item>
        <!-- 是否浮现在activity之上 -->
        <item name="android:windowIsTranslucent">false</item>
         <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 半透明 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 无标题 -->
        <!-- <item name="android:windowBackground">@color/alpha_bg</item>背景透明 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 模糊 -->
    </style>
    
</resources>

4,改变dialog在页面显示的宽高。   在dialog.show()后面调用,设置对话框的宽高。

  dialog.show();

    //设置对话框的宽高

       WindowManager m = getWindowManager();

       Display d = m.getDefaultDisplay(); // 为获取屏幕宽、高

       android.view.WindowManager.LayoutParams p = getWindow().getAttributes(); 

       p.height = (int) (d.getHeight() * 0.3); // 高度设置为屏幕的0.8

       p.width = (int) (d.getWidth() * 0.9); // 宽度设置为屏幕的0.7

       dialog.getWindow().setAttributes(p);

 

二,先设置自定义对话框布局:

custom_input_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@color/write"
    android:orientation="vertical" >
     <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_title_custom_dialog"
        android:paddingTop="10dip"
        android:paddingBottom="10dip"
        android:orientation="horizontal" >
        <ImageView 
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dip"
            android:src="@drawable/input"></ImageView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="8dip"
            android:textSize="25sp"
            android:text="提示"
            android:textColor="@color/black"
            />
    </LinearLayout>
  <!--   <LinearLayout
        android:id="@+id/contentView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" > -->
        <EditText
            android:id="@+id/fuifu_msg"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dip"
            android:gravity="left|center"
            android:textSize="22sp"
            android:background="@color/transparent"
            android:hint="请输入回复内容" />
        
    <!-- </LinearLayout> -->

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="5dip"
        android:paddingBottom="5dip"
        android:paddingLeft="5dip"
        android:paddingRight="5dip"
        android:background="@drawable/bg_bottom_custom_dialog"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/positiveButton"
            android:layout_width="0dip"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:background="@drawable/button_bg"
            android:text="确定"
            android:textSize="20sp"
            android:gravity="center" />
        <Button
            android:id="@+id/negativeButton"
             android:layout_width="0dip"
            android:layout_weight="1"
            android:background="@drawable/button_bg"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20.0dip"
            android:text="取消"
             android:textSize="20sp"
            android:gravity="center" />
    </LinearLayout>
</LinearLayout>

三:设置自定义文件dialog:

/**
 * 
 */
package com.gaosheng.foodproduction.d;
import com.gaosheng.foodproduction.R;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
/**  
 * @Description: TODO自定义输入对话框
 * @author daipengcheng 
 * @date 2015-11-16 上午9:04:19
 * @version V1.0 
 */
public class custom_input_dialog extends Dialog{
  /**
  * @param context
  */
 
 private EditText editText;
     private Button positiveButton, negativeButton;
     private TextView title;
  
     public custom_input_dialog(Context context) {
   super(context,R.style.dialog);
     setCustomDialog(); 
     }
   
  
     private void setCustomDialog() {
         View mView = LayoutInflater.from(getContext()).inflate(R.layout.custom_input_dialog, null);
         title = (TextView) mView.findViewById(R.id.title);
         editText = (EditText) mView.findViewById(R.id.fuifu_msg);
         positiveButton = (Button) mView.findViewById(R.id.positiveButton);
         negativeButton = (Button) mView.findViewById(R.id.negativeButton);
         super.setContentView(mView);
     }
      
     public View getEditText(){
         return editText;
     }
      
      @Override
     public void setContentView(int layoutResID) {
     }
  
     @Override
     public void setContentView(View view, LayoutParams params) {
     }
  
     @Override
     public void setContentView(View view) {
     }
  
     /** 
      * 确定键监听器 
      * @param listener 
      */ 
     public void setOnPositiveListener(View.OnClickListener listener){  
         positiveButton.setOnClickListener(listener);  
     }  
     /** 
      * 取消键监听器 
      * @param listener 
      */ 
     public void setOnNegativeListener(View.OnClickListener listener){  
         negativeButton.setOnClickListener(listener);  
     }

}

四:在activity中使用对话框

 final custom_input_dialog dialog = new custom_input_dialog(tzggActivity.this);

 final EditText editText = (EditText) dialog.getEditText();//方法在CustomDialog中实现

 dialog.setOnPositiveListener(new OnClickListener() {

        @Override

   public void onClick(View v) {

        huifuStr=editText.getText().toString();

        pd2 = ProgressDialog.show(tzggActivity.this, "提示", "正在添加..");

        SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");       

        date=sDateFormat.format(new java.util.Date());   

        dialog.dismiss();

        pd2.show();

        new Thread(new Runnable() {

         @SuppressWarnings("static-access")

         @Override

         public void run() {

          str =bll.UploadGg(zfrybh,

            mima,myguid,huifuStr,date);

          toast(0,str);

          if (str.equals("1")) {

           handler.sendEmptyMessage(2);

          } else 

          {

           handler.sendEmptyMessage(3);

          }

          

         }

        }).start();

          }

      });

      dialog.setOnNegativeListener(new OnClickListener() {

          @Override

          public void onClick(View v) {

           dialog.dismiss();

          }

      });

      dialog.show();

    //设置对话框的宽高

       WindowManager m = getWindowManager();

       Display d = m.getDefaultDisplay(); // 为获取屏幕宽、高

       android.view.WindowManager.LayoutParams p = getWindow().getAttributes(); 

       p.height = (int) (d.getHeight() * 0.3); // 高度设置为屏幕的0.8

       p.width = (int) (d.getWidth() * 0.9); // 宽度设置为屏幕的0.7

       dialog.getWindow().setAttributes(p);
}

 

转载于:https://my.oschina.net/u/2480757/blog/535196

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值