android自定义dialog
16lz
2021-01-23
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
更多相关文章
- 从简单的android 登陆应用 ,学习布局,
- android基础(一) View与六大布局(上)
- RelativeLayout布局
- 【063】◀▶ Android (I) - 控件和布局
- Android studio 不能预览布局文件
- Android的列表布局
- android 屏蔽证书验证 CertPathValidatorException: Trust ancho
- android RelativeLayout 布局属性详解
- Android之RelativeLayout相对布局