android原生的dialog没有很好的样式,所以要想制作漂亮的dialog,需要自定义dialog,今天实现一个类似于QQ删除好友的dialog

先看效果图:

android自定义dialog_第1张图片

自定义dialog的布局如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical"  tools:context=".MainActivity" >  <Button    android:id="@+id/dialog"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_gravity="center_horizontal"    android:background="@drawable/text_border"    android:text="删除"    android:textColor="#ffffff"    android:textSize="18sp" />  <FrameLayout    android:id="@+id/dialogfram"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_gravity="center"    android:background="#B0000000"    android:visibility="gone" >    <RelativeLayout      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:layout_gravity="center"      android:layout_margin="10dp"      android:background="@drawable/pop_border" >      <TextView        android:id="@+id/title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true"        android:padding="10dp"        android:text="删除好友"        android:textColor="#000000"        android:textSize="18sp" />      <TextView        android:id="@+id/delete"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/title"        android:layout_margin="5dp"        android:lineSpacingExtra="3dp"        android:text="同时会将我从对方列表中删除,且屏蔽对方的临时会话,不再接收此人的消息!,且屏蔽对方的临时会话,不再接收此人的消息!"        android:textColor="#000000"        android:textSize="13sp" />      <TextView        android:id="@+id/space"        android:layout_width="match_parent"        android:layout_height="10dp"        android:layout_below="@+id/delete" />      <View        android:id="@+id/line"        android:layout_width="match_parent"        android:layout_height="1dp"        android:layout_below="@+id/space"        android:background="@color/divid" />      <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/line"        android:gravity="center"        android:orientation="horizontal" >        <TextView          android:id="@+id/cancle"          android:layout_width="0dp"          android:layout_height="wrap_content"          android:layout_weight="1"          android:gravity="center"          android:padding="10dp"          android:text="取消"          android:textColor="#000000"          android:textSize="15sp" />        <View          android:layout_width="1dp"          android:layout_height="match_parent"          android:background="@color/divid" />        <TextView          android:layout_width="0dp"          android:layout_height="wrap_content"          android:layout_weight="1"          android:gravity="center"          android:padding="10dp"          android:text="确定"          android:textColor="#000000"          android:textSize="15sp" />      </LinearLayout>    </RelativeLayout>  </FrameLayout></FrameLayout>

该布局是一个framelayout,该framelayout默认是隐藏的,当点击按钮监听事件发生时,显示。

pop_border.xml文件如下:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle" >    <corners android:radius="5dp" />    <solid android:color="#fff0fbfb" />    <stroke        android:width="1dp"        android:color="#ffc5d1d0" /></shape>

text_border.xml文件如下:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle" >    <corners android:radius="5dp" />    <solid android:color="#ff78b2f1" />    <stroke        android:width="1dp"        android:color="#ffffff" /></shape>

mainactivity.java

package com.example.selfpop;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.view.LayoutInflater;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {View view;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button = (Button) findViewById(R.id.dialog);view = findViewById(R.id.dialogfram);TextView cancle = (TextView) view.findViewById(R.id.cancle);cancle.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubview.setVisibility(View.GONE);}});button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub//View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.pop,null);//new AlertDialog.Builder(MainActivity.this).setView(view).show();view.setVisibility(View.VISIBLE);}});}}
源码连接: http://download.csdn.net/detail/mockingbirds/8078577



更多相关文章

  1. 从简单的android 登陆应用 ,学习布局,
  2. android基础(一) View与六大布局(上)
  3. RelativeLayout布局
  4. 【063】◀▶ Android (I) - 控件和布局
  5. Android studio 不能预览布局文件
  6. Android的列表布局
  7. android 屏蔽证书验证 CertPathValidatorException: Trust ancho
  8. android RelativeLayout 布局属性详解
  9. Android之RelativeLayout相对布局

随机推荐

  1. 15个炫酷的CSS3加载动画图标
  2. 【前端词典】这些功能其实不需要 JS,CSS
  3. 在阿里年薪百万,回到家洗衣做饭,媳妇太厉害
  4. HTML5实现的瀑布动画,超逼真
  5. HTML5爱心表白动画 程序员也浪漫
  6. 阿里这几年真是越来越没人情味了
  7. 【前端词典】三种处理滚动穿透问题方案的
  8. Ansible 之 yum安装
  9. 身在职场,这6条大实话潜规则你知道吗?
  10. jQuery五彩火焰背景的3D进度条插件