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

先看效果图:


自定义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 移植 rp-pppoe
  3. Duplicate jar entry [android/support/design/widget/Coordinat
  4. Android如何调用Google Web Search?
  5. Android如何调用Google Web Search?
  6. Android(安卓)Bundle类
  7. Adnroid单元测试
  8. TabHost随着输入法软键盘出现而上浮的问题
  9. Android(安卓)访问Http被限制解决方法

随机推荐

  1. webrtc 之android与PC互通
  2. Android的消息机制,用Android线程间通信的
  3. android基本架构
  4. Android自定义视图二:用Canvas和Paint绘制
  5. Android Studio打包apk,aar,jar包 总结
  6. android 发送语音功能和ios交互格式aac
  7. Android(安卓)Material Design 之 Bottom
  8. 巨好的入门写精通
  9. Android 月活跃人数超过10亿用户了,我却审
  10. Android菜鸟的成长笔记(15)—— Android中