您的位置:首页 > 其它

自定义Dialog用于电话咨询,具有从底部弹出效果,点击按钮改变颜色

2014-10-23 15:09 429 查看
最终效果如下:

1.主activity有个按钮点击弹出对话框,初始化Dialog,具体代码如下:

package com.example.customdialog;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
private Context context;
private Button button;
private Dialog dialog;

private TextView phone_number;
private Button cancel_btn,call_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

context = this;

//初始化对话框
initDialog();

button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.show();
}
});
}

private void initDialog(){
dialog = new Dialog(context, R.style.dialog);
dialog.setContentView(R.layout.dialog_view);

Window window = dialog.getWindow();
//将Dialog显示在底部
window.setGravity(Gravity.BOTTOM);
//设置Dialog弹出方式
window.setWindowAnimations(R.style.dialogBottomStyle);

android.view.WindowManager.LayoutParams params = window.getAttributes();
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
params.width = dm.widthPixels;

phone_number = (TextView) dialog.findViewById(R.id.phone_num);
//取消按钮
cancel_btn = (Button) dialog.findViewById(R.id.cancel_btn);
cancel_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(dialog != null)
dialog.cancel();
}
});

//拨打电话按钮
call_btn = (Button) dialog.findViewById(R.id.call_btn);
call_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone_number.getText().toString()));
startActivity(intent);
}
});
}

}


2.activity_main.xml文件

<RelativeLayout 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"
tools:context=".MainActivity" >

<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="电话咨询" />

</RelativeLayout>
3.自定义Dialog视图,dialog_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/dialog_background"
android:layout_margin="10dp"
android:orientation="vertical" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="13dp"
android:text="咨询电话" />

<TextView
android:id="@+id/phone_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="12989487962"
android:textColor="#ff0000"
android:textSize="20sp" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/cancel_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@drawable/cancel_btn"
android:padding="10dp"
android:text="取消" />

<Button
android:id="@+id/call_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@drawable/call_btn"
android:padding="10dp"
android:text="拨打" />
</LinearLayout>

</LinearLayout>

Demo下载
http://pan.baidu.com/s/1dD5Z22d
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息