Android 来自自定义图像视图的Toast消息
如何在扩展ImageView的类中显示toast消息。我想把它放在onDoubleTap方法中,这样它就可以向用户显示一条消息,告诉用户刚才双击了哪个像素。我有以下两门课:Android 来自自定义图像视图的Toast消息,android,imageview,toast,Android,Imageview,Toast,如何在扩展ImageView的类中显示toast消息。我想把它放在onDoubleTap方法中,这样它就可以向用户显示一条消息,告诉用户刚才双击了哪个像素。我有以下两门课: public class TouchImageView extends ImageView { .... final GestureDetector mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener
public class TouchImageView extends ImageView
{
....
final GestureDetector mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener()
{
@Override
public boolean onDoubleTap(MotionEvent e)
{
Toast.makeText(getApplicationContext(), "Pixel", Toast.LENGTH_SHORT).show();
return true;
}
...
}
public class DisplayMap extends Activity
{
int width;
int height;
double imageSize;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TouchImageView img = new TouchImageView(getApplicationContext());
Bitmap mapImage = BitmapFactory.decodeResource(getResources(), R.drawable.testimage);
img.setImageBitmap(mapImage);
img.setMaxZoom(4f);
setContentView(img);
...
}
上面的代码不起作用,因为
ImageView的getApplicationContext()未定义
感谢让您的
TouchImageView
类构造函数接受上下文
对象
Context context;
public TouchImageView(Context context) {
super(context); //Thanks for this tip
this.context = context;
}
final GestureDetector mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener()
{
@Override
public boolean onDoubleTap(MotionEvent e)
{
Toast.makeText(context, "Pixel", Toast.LENGTH_SHORT).show();
return true;
}
...
}
并发送您的活动。TouchImageView对象中的此对象如果您正在子类化ImageView,则会继承方法getContext()。用这个来展示你的祝酒词
Toast.makeText(getContext(), "Pixel", Toast.LENGTH_SHORT).show();
为了澄清另一个答案,如果您是ImageView的子类,只需调用super(context);不要担心维护自己的上下文实例
这:
应该是:
Context context; // <-- remove this
public TouchImageView(Context context) {
super(context);
}
上下文;//josh,要直接回答您的问题,您不能调用getContext()
,因为该行在匿名类中,而不是TouchImageView
类中。getContext是一个视图方法,image view扩展了view,这个家伙正在扩展ImageView,所以获取上下文的调用应该在那里。我还没有尝试过这个方法,但会的。谢谢大家
Context context; // <-- remove this
public TouchImageView(Context context) {
super(context);
}