android悬浮窗应用
2015-07-13 17:19
323 查看
部分代码如下:
public void ShowAlertScreen(Context context,String titles,String content,String phone)
{
// 获取Service
wm = (WindowManager) context.getSystemService("window");
WindowManager.LayoutParams mWindowParams = new WindowManager.LayoutParams();
// 设置窗口类型,一共有三种Application windows, Sub-windows, System windows
// API中以TYPE_开头的常量有23个
mWindowParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
// 设置期望的bitmap格式
mWindowParams.format = PixelFormat.RGBA_8888;
mWindowParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
// 以下属性在Layout Params中常见重力、坐标,宽高
//mWindowParams.gravity = Gravity.LEFT | Gravity.TOP;
mWindowParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
mWindowParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view=inflater.inflate(R.layout.activity_call_label, null);
TextView tv =(TextView) view.findViewById(R.id.txtPhone);
tv.setText(phone);
TextView title = (TextView) view.findViewById(R.id.txtTitle);
TextView alert = (TextView) view.findViewById(R.id.txtAlert);
ImageButton btnClose = (ImageButton) view.findViewById(R.id.btnJb2);
if(!titles.equals(""))
{
title.setText(titles);
}
alert.setText(content);
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try
{
// 获取Service
AlertDialog.Builder builder = new AlertDialog.Builder(FireWallService.this);
builder.setTitle("请选择举报类型") // title
.setItems(R.array.stype, new DialogInterface.OnClickListener() { //content
@Override
public void onClick(DialogInterface dialog, int which) {
wType = (which+1)+"";
new Thread() {
@Override
public void run()
{
WebClassCommonEntity result = new WebUtil().markPhone(getApplicationContext(),Configuration.imei,phone_num,wType);
}
}.start();
}});
AlertDialog ad = builder.create();
//ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG); //系统中关机对话框就是这个属性
ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
ad.setCanceledOnTouchOutside(false); //点击外面区域不会让dialog消失
ad.show();
}
catch(Exception eee)
{
}
}
});
// 添加指定视图
wm.addView(view, mWindowParams);
}
public void ShowAlertScreen(Context context,String titles,String content,String phone)
{
// 获取Service
wm = (WindowManager) context.getSystemService("window");
WindowManager.LayoutParams mWindowParams = new WindowManager.LayoutParams();
// 设置窗口类型,一共有三种Application windows, Sub-windows, System windows
// API中以TYPE_开头的常量有23个
mWindowParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
// 设置期望的bitmap格式
mWindowParams.format = PixelFormat.RGBA_8888;
mWindowParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
// 以下属性在Layout Params中常见重力、坐标,宽高
//mWindowParams.gravity = Gravity.LEFT | Gravity.TOP;
mWindowParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
mWindowParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view=inflater.inflate(R.layout.activity_call_label, null);
TextView tv =(TextView) view.findViewById(R.id.txtPhone);
tv.setText(phone);
TextView title = (TextView) view.findViewById(R.id.txtTitle);
TextView alert = (TextView) view.findViewById(R.id.txtAlert);
ImageButton btnClose = (ImageButton) view.findViewById(R.id.btnJb2);
if(!titles.equals(""))
{
title.setText(titles);
}
alert.setText(content);
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
try
{
// 获取Service
AlertDialog.Builder builder = new AlertDialog.Builder(FireWallService.this);
builder.setTitle("请选择举报类型") // title
.setItems(R.array.stype, new DialogInterface.OnClickListener() { //content
@Override
public void onClick(DialogInterface dialog, int which) {
wType = (which+1)+"";
new Thread() {
@Override
public void run()
{
WebClassCommonEntity result = new WebUtil().markPhone(getApplicationContext(),Configuration.imei,phone_num,wType);
}
}.start();
}});
AlertDialog ad = builder.create();
//ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG); //系统中关机对话框就是这个属性
ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
ad.setCanceledOnTouchOutside(false); //点击外面区域不会让dialog消失
ad.show();
}
catch(Exception eee)
{
}
}
});
// 添加指定视图
wm.addView(view, mWindowParams);
}
相关文章推荐
- 使用WIFI连接android进行调试和adb操作
- android各种资源的详细解释
- 手电筒的制作
- Androidの自定义对话框AlertDialog(一)
- android线程销毁
- android知识杂记(二)
- Android Fragment 真正的完全解析
- Android Fragment 真正的完全解析
- 基于Jenkins+git+gradle的android持续集成
- Tablayout(Android) 的几个重要属性
- android studio中出现的问题
- Android EditText输入最大值提示功能
- android知识杂记(一)
- 【Android】设置全屏和横屏
- android studio配置AndroidAnnotations
- android新组件RecyclerView使用介绍和进阶使用
- android raw与assets区别
- Android开发之如何监听让服务不被杀死(service+broadcast)
- Android开发Button控件的圆角,边框
- Android性能优化典范---转