آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در ایجاد منو شناور که روی همه ی المان های صفحه نمایش داده شود

sajjadgh  11 سال پیش  10 سال پیش
0 0

سلام خدمت همه اساتید و دوستان

من میخوام در پروژم یک منو شناور داشته باشم که وقتی فعال میشه روی همه اکتیوی ها و اپ های دیگه نمایش داده شود

اینکار را با کدهای زیر و با استفاده از سرویس انجام دادم و منوی شناور هم ایجاد میشه و با بازکردن خیلی از برنامه های دیگه هم این منو همچنان روی صفحه قرار داره فقط توی بعضی از برنامه ها با باز شدن برنامه این منو حذف میشه و دیگه نمایش داده نمیشود

کسی میدونه مشکلش از کجاست

ممنون میشم راهنمایی کنید

 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 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .