技术标签: android
package com.home.floatwindow;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.IBinder;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.home.testfolatwindow.R;
public class FloatService extends Service {
private WindowManager wm;
private WindowManager.LayoutParams wmlp;
private LinearLayout layout;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
createFloatView();
}
private void createFloatView() {
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
wmlp = new WindowManager.LayoutParams();
wmlp.type = LayoutParams.TYPE_PHONE;
// 设置图片格式,效果为背景透明
wmlp.format = PixelFormat.RGBA_8888;
// 设置浮动窗口不可聚焦
wmlp.flags = LayoutParams.FLAG_NOT_FOCUSABLE;
wmlp.gravity = Gravity.LEFT | Gravity.TOP;
wmlp.x = 0;
wmlp.y = 0;
wmlp.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmlp.height = WindowManager.LayoutParams.WRAP_CONTENT;
layout = getLayout();
wm.addView(layout, wmlp);
layout.measure(View.MeasureSpec.makeMeasureSpec(0,
View.MeasureSpec.UNSPECIFIED), View.MeasureSpec
.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
ImageView iv = (ImageView) layout.findViewById(1);
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("onClick", "onClick");
}
});
iv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// getRawX是触摸位置相对于屏幕的坐标,getX是相对于按钮的坐标
wmlp.x = (int) event.getRawX() - layout.getMeasuredWidth() / 2;
// 减25为状态栏的高度
wmlp.y = (int) event.getRawY() - layout.getMeasuredHeight() / 2
- 25;
wm.updateViewLayout(layout, wmlp);
return false;
}
});
}
private LinearLayout getLayout() {
LinearLayout layout = new LinearLayout(this);
ImageView iv = new ImageView(this);
iv.setBackgroundResource((R.drawable.ic_launcher));
iv.setId(1);
layout.addView(iv);
return layout;
}
@Override
public void onDestroy() {
super.onDestroy();
if (layout != null) {
// 移除悬浮窗口
wm.removeView(layout);
}
}
}
一、cin 和 coutC++相关变量值的输出,使用的是 cout,那么在C++中进行打印输出一般是用输入与输出流库中的 cin 和 cout 来实现的。cin 和 cout 的定义是在 iostream 中,命名空间为 std,所以如果我们的程序中要使用 cin 和 cout 就必须要加上以下两条语句:#include <iostream>using namespace std;在进行输入和输出的时候,我们经常使用 << 和 >> 符号。例如:cout &l_c++ 输出
在通信的算法中,常采用Cordic算法之一,知道角度产生正交的的正弦余弦,或者知道正弦和余弦求角度,求反正切。1. 求正弦和余弦值。方法:旋转角度,得到正弦余弦值; 再旋转角度,到达下一个正弦余弦值;直到旋转的角度趋近于 0 ,不能再进行旋转。把每次旋转的坐标的x,Y轴的值各自相加,即得到为该角度的正弦和余弦值。2 .求反正切:Angle = artan(y/x)。方法: 及给定x,y 的坐标..._cordic算法c语言实现求actan
最近在研究股票,必然会用到通达信行情软件,这里面有很多的指标、公式,网上也有很多,如果想要加以改进,很多都进行了加密,不能修改,通达信公式解密工具就可以很好的解决这个密码的问题。用法:把要解密的指标导入到解密工具,点击修改,会弹出密码输入框,点击确定,密码就随后显示出来了,是不是非常简单呢?下载地址:http://pan.baidu.com/s/1i3KQOmx ...
1、功能描述:几乎所有的RPG游戏(一种源自《龙与地下城》的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色。本次上机要求编写一个简化的创建游戏角色的程序。2、游戏角色应有的属性本题目要求的游戏角色应有以下属性:名字、性别、种族、职业、力量、敏捷、体力、智力、智慧、生命值和魔法值。名字:不超过50个字符。性别:可以选择男性和女性。种族:一共可选五个种族,人类、精灵、兽人、矮人和...
点击上方“蓝色字”可关注我们!暴走时评:Hired公司2018年的薪酬状况报告显示,区块链工程师的平均年收入飙升至150-175,000美元,这个数字远远高于软件工程师1...
Map字典的操作函数:(1)Lookup(key,memy) 在字典中寻找key键值,并把key键值对应的元素赋值给memy,返回非0 如果字典中没有key,则返回0(2)SetAt(key,memy) 给字典建立新的映射关系 如果key键值已经存在,则就把其之前对应的元素值用memy覆盖掉 如果不存在就新建key键值,并且其对应元素为memy..._cmap lookup
本文来源于GitChat体验课第01课: C标准发展C标准的四个阶段:K&R CANSI CC99C11K&R C 称为传统C语言,在C语言标准统一前,这个是最权威。ANSI C:是ANSI(美国国家标准协会), 再K&R C基础上,统一了各大编译器厂商的不同标准,并做了一些扩展,也称作 C89/C90, 至此C标准统一起来。C99: A..._c语言内核深度解析 pdf
自学Python DAY 4目录turtle库介绍turtle库使用turtle的实例(源代码分享)库我之前发的百科已经详细的介绍了,不知道的点击下方链接查看!博文-宇辰:【Python百科】库zhuanlan.zhihu.com库 (library)库有许多说法,比如库,包,项目,模块等。意思是指别人写好的项目代码,你下载放到规定的目录后就可以正常使用别人的项目代码,比如os库,sys库等库的..._python编程绘制3个雪糕
数据库架构相关Architecture of a Database System. Joseph M. Hellerstein, Michael Stonebraker and James Hamilton 图灵奖获得者Michael Stonebraker的论文之一,具体介绍了数据库的架构以及相关理论和主流数据库的具体做法。启发: 对于已经阅读过基础的数据库教材的
1、官网下载apache tomcat_tomcat到乘以64配置
在这里还是主要分析一下printk实现的原理。static spinlock_t logbuf_lock = SPIN_LOCK_UNLOCKED; //定义logbuf_lock,并初始化为unlock状态static char log_buf[LOG_BUF_LEN]; //保存日志数据的缓冲区#define LOG_BUF(idx) (log_buf[(idx) & L
#import<UIKit/UIKit.h>#import<MapKit/MapKit.h>@interfaceUserLocationViewController:UIViewController<MKMapViewDelegate>{MKMapView*mapView;UIButton*btn;}..._mkmapview 添加坐标