7일정도 안드로이드 스튜디오 만졌는데요 전혀 모르겠습니다.
어떻게 하다가 보니깐 서비스로 반투명하게 항상 최상위에 버튼이 뜨게 만들긴 했는데 그 버튼으로 메인 화면의 뒤로 가기를 해야 하는데 계속 안됩니다. 아는게 없어서 뭐라 검색해야될지도 모르겠고요
코드는 인터넷에서 긁어서 이어 붙인 거구요 서비스만 올렸는데 더 어떻게 해야 할지 모르겠습니다. 제발 도와주세요ㅠㅠ
int i=0;
public MyService2() {
}
IBinder mBinder = new MyBinder();
class MyBinder extends Binder {
MyService2 getService() {
return MyService2.this;
}
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
//throw new UnsupportedOperationException("Not yet implemented");
return mBinder;
}
int getRan() {
return i++;
}
Button btbt;
TextView tv;
WindowManager.LayoutParams mParams;
WindowManager mWindowManager;
@Override
public void onCreate(){
super.onCreate();
Point pt = new Point();
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
Display md = wm.getDefaultDisplay();
md.getSize(pt);
int flags;
tv = new TextView(this);
tv.setText("gfghfghf");
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,18);
tv.setTextColor(Color.BLUE);
tv.setBackgroundColor(Color.argb(127,0,255,255));
btbt = new Button(this);
btbt.setText("zzz");
btbt.setTextSize(TypedValue.COMPLEX_UNIT_SP,18);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
flags = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
} else {
flags = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
}
mParams = new WindowManager.LayoutParams(
pt.x =100,
pt.y =100 ,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
flags,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT); //투명
mParams.gravity = Gravity.LEFT; //왼쪽 상단에 위치하게 함.
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); //윈도우 매니저
((WindowManager) getSystemService(WINDOW_SERVICE)).addView(btbt,mParams); //윈도우에 뷰 넣기. permission 필요. 여기서 안됨
Log.i("test","zzz");
Log.i("test","good");
btbt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
btbt.setText("aaa");
}
});
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("test","asd");
return super.onStartCommand(intent,flags,startId);
}
@Override
public void onDestroy(){
super.onDestroy();
if(tv != null)
{
((WindowManager) getSystemService(WINDOW_SERVICE)).removeView(btbt);
tv = null;
}
Log.i("test","end");
}
}