[英]android - Overlay Service Move View
我正在尝试创建一个始终运行于顶部的视图并将图像放入其中。...代码运行时没有任何错误。
问题出在btn1 TouchListener上,当用户触摸按钮ImageView随其移动时,但是ImageView首先跳到屏幕的末端,然后开始在屏幕上移动,并且图像视图当前在用户触摸的地方不动...。 IamgeView Set的Y表示没有问题,但X当前不适合。
这是我的代码:
public class OverlayService extends Service {
LinearLayout lView;
TouchImageView oView; //My Custom Image View
WindowManager wm;
Button btn1;
WindowManager.LayoutParams params;
Bitmap a;
@Override
public IBinder onBind(Intent i) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
sendNotification();
isRun=true;
//Get A Bitmap For Imageview
clashbaz.irana.ir.clashbaz.Bitmap mbit = new clashbaz.irana.ir.clashbaz.Bitmap();
a = mbit.imageFromAsset(intent.getStringExtra("data"),getApplicationContext());
oView.viewHeight = a.getHeight();
oView.viewWidth = a.getWidth();
lView.addView(btn1);
lView.addView(oView);
params = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
wm = (WindowManager) getSystemService(WINDOW_SERVICE);
params.gravity = Gravity.START | Gravity.LEFT;
wm.addView(lView, params);
oView.setImageDrawable(new BitmapDrawable(a)); // Image Resource
wm.updateViewLayout(lView, params);
return START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
lView = new LinearLayout(this);
lView.setOrientation(LinearLayout.VERTICAL);
oView = new TouchImageView(this);
oView.isFocusable();
btn1 = new Button(this);
btn1.setText("Move");
btn1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_MOVE) {
params.x = (int) e.getRawX();
params.y = (int) e.getRawY();
wm.updateViewLayout(lView, params);
}
return false;
}
});
}
最终,我在这里找到了詹姆斯的话。
只需添加Gravity.TOP | Gravity.LEFT
重力。 Gravity.START | Gravity.LEFT
Gravity.TOP | Gravity.LEFT
重力Gravity.START | Gravity.LEFT
Gravity.START | Gravity.LEFT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.