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

Android 自定义对话框(仿iPhoneQQ)

2013-12-16 16:15 260 查看
自定义对话框,其实很容易,通过一个布局即可实现,首先我们看一下效果图



其实这个很简单,下面通过代码说明:

第一步:我们看一下布局文件及效果图



源码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="vertical" >

<TextView
android:id="@+id/tv_one"
android:layout_width="300dip"
android:layout_height="48dip"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="退出"
android:textSize="20dip"
android:textStyle="bold"
/>

<TextView
android:id="@+id/tv_two"
android:layout_width="300dip"
android:layout_height="65dip"
android:layout_below="@id/tv_one"
android:layout_centerHorizontal="true"
android:gravity="left|center"
android:padding="10dip"
android:text="您真的要退出QQ?"
android:textSize="15dip"
android:textStyle="bold"/>
<Button
android:id="@+id/confirm"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tv_two"
android:layout_below="@+id/tv_two"
android:layout_marginTop="20dp"
android:background="@drawable/unipay_drawable_inputbg"
android:text="确认"
android:textColor="#3399FF" />

<Button
android:id="@+id/cancel"
android:layout_width="145dip"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/confirm"
android:layout_alignBottom="@+id/confirm"
android:layout_alignParentRight="true"
android:background="@drawable/unipay_drawable_inputbg"
android:text="取消"
android:textColor="#3399FF" />

</RelativeLayout>
第二步:创建一个dialog的源码

public class MainActivity extends Activity implements OnClickListener {

private Button dialog_btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}

private void initView() {//初始化view
dialog_btn = (Button) findViewById(R.id.dialog_btn);
dialog_btn.setOnClickListener(this);
}

@Override
public void onClick(View v) {
showDialog();
}
private void showDialog(){
AlertDialog.Builder builder = new Builder(this);
View view = View.inflate(this, R.layout.dialog, null);//这个方法将我们刚刚所定义的布局转成一个view
AlertDialog dialog = builder.create();//这里创建的是一个没任何内容的dialogue
dialog.setView(view, 0, 0, 0, 0);//这个方法设置这个view到这个dialogue中,其中四个参数定义的是这个view对象距离此dialogue中 上、下、左、右的距离
dialog.show();//记住,你通过那个创建的就要用那个来显示
}
}


这样就完了,转载的话,请注明出处,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息