我有类StickerImageView,它可以扩展StickerView类和StickerView 的FrameLayout
现在我正在创建StickerImageView类的对象并将位图设置到其中..
StickerImageView iv_sticker;
iv_sticker = new StickerImageView(this);
iv_sticker.setImageBitmap(result);
并通过添加视图使其对屏幕可见
mainscreen_relativelayout.addView(iv_sticker);
现在我想在动态创建的视图(iv_sticker)上关闭吐司,所以我正在这样做
iv_sticker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"i clicked",Toast.LENGTH_LONG).show();
}
});
我也尝试过这个自定义视图iv_sticker
iv_sticker.setClickable(true);
当我使用OnTouchListener吐司出现但视图(iv_sticker)不再可移动时
iv_sticker.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP){
Toast.makeText(CropActivity.this,"i clicked",Toast.LENGTH_LONG).show();
// Do what you want
return true;
}
return false;
}
});
这是我点击贴纸时的日志
04-07 18:03:23.265 8208-8208/com.package.myappname V/com.knef.stickerView: sticker view action down
04-07 18:03:23.362 8208-8208/com.package.myappname V/PhoneWindow: debug app launch: MotionEvent.ACTION_UP
04-07 18:03:23.362 8208-8208/com.package.myappname V/com.knef.stickerView: sticker view action up
答案 0 :(得分:0)
当我尝试ontouchevent时,吐司出现但贴纸不可移动 再
这是因为您已经消耗了触摸事件。从false
方法返回onTouch(...)
,让框架再次为您处理。