我试图像在Instagram中一样实施长按图像预览。我的应用程序就像一个目录,其中包含图像,当我长按任何图像时,它的预览应该出现,并在发布后像在Instagram中一样关闭。
答案 0 :(得分:2)
我正在使用带图像的回收站视图。
要显示图像,我使用长按监听器调用此方法:
public void publicationQuickView(Post post){
View view = getLayoutInflater().inflate( R.layout.quick_view, null);
ImageView postImage = (ImageView) view.findViewById(R.id.ivFeedCenter);
ImageView profileImage = (ImageView) view.findViewById(R.id.ivUserProfile);
TextView tvUsername = (TextView) view.findViewById(R.id.txtUsername);
tvUsername.setText(post.user.name);
Picasso.with(this).load(post.picture).priority(Picasso.Priority.HIGH).noPlaceholder().into(postImage);
Picasso.with(this).load(post.user.picture).noPlaceholder().into(profileImage);
builder = new Dialog(this);
builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
builder.getWindow().setBackgroundDrawable(
new ColorDrawable(Color.TRANSPARENT));
builder.setContentView(view);
builder.show();
}
我给布局充气并注入对话框。
要解除对话框,我正在使用RecyclerView.OnItemTouchListener(),如下所示:
rvUserProfile.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
if(e.getAction() == MotionEvent.ACTION_UP)
hideQuickView();
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent event) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}});
最后:
public void hideQuickView(){
if(builder != null) builder.dismiss();
}
答案 1 :(得分:1)
长按
使用此代码Whoops looks like something went wrong
有关详细信息,请访问此https://gist.github.com/scruffyfox/3894926
答案 2 :(得分:0)
我将其作为一个Android库,您可以直接从here使用它。
要使用它,您只需提供 contentDescription ,就这么简单
StaggeredGridLayoutManager
如果您不想使用<hendrawd.library.customview.HintedImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_xxx"
android:contentDescription="Put your hint here!"
android:background="@drawable/optional_selector"
/>
背景,则可以直接更改背景或将其设置为ImageButton