بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در ایجاد منو شناور که روی همه ی المان های صفحه نمایش داده شود
سلام خدمت همه اساتید و دوستان
من میخوام در پروژم یک منو شناور داشته باشم که وقتی فعال میشه روی همه اکتیوی ها و اپ های دیگه نمایش داده شود
اینکار را با کدهای زیر و با استفاده از سرویس انجام دادم و منوی شناور هم ایجاد میشه و با بازکردن خیلی از برنامه های دیگه هم این منو همچنان روی صفحه قرار داره فقط توی بعضی از برنامه ها با باز شدن برنامه این منو حذف میشه و دیگه نمایش داده نمیشود
کسی میدونه مشکلش از کجاست
ممنون میشم راهنمایی کنید
package com.example.headservice;
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.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class HeadService extends Service {
private WindowManager windowManager;
private ImageView Head;
public static LayoutInflater inflater;
ViewGroup parent;
View convertView;
@Override public IBinder onBind(Intent intent) {
// Not used
return null;
}
@Override public void onCreate() {
super.onCreate();
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.test, parent, false);
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
// WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY ,
WindowManager.LayoutParams.TYPE_PHONE,
// WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
TextView txt1 = (TextView) convertView.findViewById(R.id.txt1);
Button btn1 = (Button) convertView.findViewById(R.id.btn1);
ViewGroup lyt = (ViewGroup) convertView.findViewById(R.id.lyt);
windowManager.addView(convertView, params);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Test", Toast.LENGTH_LONG).show();
Log.i("Log", "click");
}
});
convertView.setOnTouchListener(new View.OnTouchListener() {
private int initialX;
private int initialY;
private float initialTouchX;
private float initialTouchY;
@Override public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = params.x;
initialY = params.y;
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
return true;
case MotionEvent.ACTION_UP:
return true;
case MotionEvent.ACTION_MOVE:
params.x = initialX + (int) (event.getRawX() - initialTouchX);
params.y = initialY + (int) (event.getRawY() - initialTouchY);
windowManager.updateViewLayout(convertView, params);
return true;
}
return false;
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
// if (convertView != null) windowManager.removeView(convertView);
}
}
0
0
سلام میشه این منوی شناور را اموزش بدی چطوریه؟ (10 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .