Android OnClickListener内部服务
我正在尝试创建一个图像,它位于所有android服务窗口的顶部,这是Android OnClickListener内部服务,android,Android,我正在尝试创建一个图像,它位于所有android服务窗口的顶部,这是onCreate方法: @Override public void onCreate() { super.onCreate(); mWindowsManger = (WindowManager) getSystemService(WINDOW_SERVICE); mFloatingImage = new ImageView(this); mFloating
onCreate
方法:
@Override
public void onCreate() {
super.onCreate();
mWindowsManger = (WindowManager) getSystemService(WINDOW_SERVICE);
mFloatingImage = new ImageView(this);
mFloatingImage.setImageResource(R.mipmap.ic_launcher);
mFloatingImage.setAlpha(0.5f);
mParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mParams.gravity = Gravity.TOP | Gravity.LEFT;
mParams.x = 0;
mParams.y = 100;
mFloatingImage.setClickable(true);
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
mWindowsManger.addView(mFloatingButtonImage, mParams);
}
我的问题是,OnClickListener
不工作,而OnTouchListener
工作
有没有办法在服务中实现OnClikListener
@Override
public void onCreate() {
super.onCreate();
mWindowsManger = (WindowManager) getSystemService(WINDOW_SERVICE);
mFloatingImage = new ImageView(this);
mFloatingImage.setImageResource(R.mipmap.ic_launcher);
mFloatingImage.setAlpha(0.5f);
mParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mParams.gravity = Gravity.TOP | Gravity.LEFT;
mParams.x = 0;
mParams.y = 100;
mFloatingImage.setClickable(true);
mWindowsManger.addView(mFloatingButtonImage, mParams);
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
}
但我现在就这么做,这对我很有用:
rl = (RelativeLayout) findViewById(R.id.rl);
b = (Button) findViewById(R.id.button1);
img = new ImageView(MainActivity.this);
img.setImageResource(R.drawable.ic_launcher);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
(int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
img.setLayoutParams(params);
rl.addView(img);
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "Image Clicked",
Toast.LENGTH_SHORT).show();
}
});
这样做:
@Override
public void onCreate() {
super.onCreate();
mWindowsManger = (WindowManager) getSystemService(WINDOW_SERVICE);
mFloatingImage = new ImageView(this);
mFloatingImage.setImageResource(R.mipmap.ic_launcher);
mFloatingImage.setAlpha(0.5f);
mParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mParams.gravity = Gravity.TOP | Gravity.LEFT;
mParams.x = 0;
mParams.y = 100;
mFloatingImage.setClickable(true);
mWindowsManger.addView(mFloatingButtonImage, mParams);
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
}
但我现在就这么做,这对我很有用:
rl = (RelativeLayout) findViewById(R.id.rl);
b = (Button) findViewById(R.id.button1);
img = new ImageView(MainActivity.this);
img.setImageResource(R.drawable.ic_launcher);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
(int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
img.setLayoutParams(params);
rl.addView(img);
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "Image Clicked",
Toast.LENGTH_SHORT).show();
}
});
这样做:
@Override
public void onCreate() {
super.onCreate();
mWindowsManger = (WindowManager) getSystemService(WINDOW_SERVICE);
mFloatingImage = new ImageView(this);
mFloatingImage.setImageResource(R.mipmap.ic_launcher);
mFloatingImage.setAlpha(0.5f);
mParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mParams.gravity = Gravity.TOP | Gravity.LEFT;
mParams.x = 0;
mParams.y = 100;
mFloatingImage.setClickable(true);
mWindowsManger.addView(mFloatingButtonImage, mParams);
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
}
但我现在就这么做,这对我很有用:
rl = (RelativeLayout) findViewById(R.id.rl);
b = (Button) findViewById(R.id.button1);
img = new ImageView(MainActivity.this);
img.setImageResource(R.drawable.ic_launcher);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
(int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
img.setLayoutParams(params);
rl.addView(img);
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "Image Clicked",
Toast.LENGTH_SHORT).show();
}
});
这样做:
@Override
public void onCreate() {
super.onCreate();
mWindowsManger = (WindowManager) getSystemService(WINDOW_SERVICE);
mFloatingImage = new ImageView(this);
mFloatingImage.setImageResource(R.mipmap.ic_launcher);
mFloatingImage.setAlpha(0.5f);
mParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mParams.gravity = Gravity.TOP | Gravity.LEFT;
mParams.x = 0;
mParams.y = 100;
mFloatingImage.setClickable(true);
mWindowsManger.addView(mFloatingButtonImage, mParams);
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
}
但我现在就这么做,这对我很有用:
rl = (RelativeLayout) findViewById(R.id.rl);
b = (Button) findViewById(R.id.button1);
img = new ImageView(MainActivity.this);
img.setImageResource(R.drawable.ic_launcher);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
(int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
img.setLayoutParams(params);
rl.addView(img);
img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "Image Clicked",
Toast.LENGTH_SHORT).show();
}
});
阿披实答得很好。我的答案是他答案的子集 您只需拨打:
mWindowsManger.addView(mFloatingButtonImage, mParams);
首先,然后:
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
在添加视图到视图层次结构之前,单击侦听器可能不起作用阿披舍克Das给出了很好的答案。我的答案是他答案的子集 您只需拨打:
mWindowsManger.addView(mFloatingButtonImage, mParams);
首先,然后:
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
在添加视图到视图层次结构之前,单击侦听器可能不起作用阿披舍克Das给出了很好的答案。我的答案是他答案的子集 您只需拨打:
mWindowsManger.addView(mFloatingButtonImage, mParams);
首先,然后:
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
在添加视图到视图层次结构之前,单击侦听器可能不起作用阿披舍克Das给出了很好的答案。我的答案是他答案的子集 您只需拨打:
mWindowsManger.addView(mFloatingButtonImage, mParams);
首先,然后:
mFloatingImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.print("clicked");
}
});
在将视图添加到视图层次结构之前,单击侦听器可能无法工作您是否动态创建了ImageView?是的,它基于本教程,我不会告诉您您做错了什么。。你必须找到它;-)您是否动态创建了ImageView?是的,它基于本教程,我不会告诉您您做错了什么。。你必须找到它;-)您是否动态创建了ImageView?是的,它基于本教程,我不会告诉您您做错了什么。。你必须找到它;-)您是否动态创建了ImageView?是的,它基于本教程,我不会告诉您您做错了什么。。你必须找到它;-)