自定义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
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
相关文章推荐
- Android中的Button自定义点击效果之改变点击时按钮的颜色
- 安卓中自定义点击按钮,点击可以改变颜色
- 遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
- 仿QQ新浪主界面底部导航与中间按钮点击弹出以及返回键点击返回效果
- 自定义Dialog对话框并实现从底部弹出的动画效果
- 点击编辑按钮后,如何动态改变自定义spinner内字体颜色
- 遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
- Android点击改变按钮颜色的3种效果
- C#工具栏中自定义工具点击后效果改变方法
- 点击按钮实现内容颜色的改变
- 自定义dialog响应按钮点击事件
- AlertDialog,当点击按钮时,能够根据界面上输入的数据,弹出对话框,显示界面中输入的相关信息
- android按钮被点击文字颜色变化效果
- android按钮被点击文字颜色变化效果
- 网页遮罩层效果 点击按钮网页中间弹出窗口 弹出遮罩层
- android checkBox背景样式及用颜色值实现按钮点击效果
- jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
- AlertDialog自定义View的用法+如何改变弹出框的大小
- 自定义按钮 点击弹出PopupWindow窗口
- 底部点击隐藏和弹出的效果