【发布时间】:2017-11-23 03:41:55
【问题描述】:
我想在点击时制作一个 recyclerview 图像全屏并在下面显示一个按钮,如此 xml 文件所示
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select"
android:id="@+id/profileButton"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fullscreenView"
android:layout_above="@+id/profileButton"
/>
</RelativeLayout>
这是我目前使用的图像适配器
public class ImageAdapter extends
RecyclerView.Adapter<ImageAdapter.ViewHolder>
{
private File imagesFile;
public ImageAdapter(File folderFile)
{
imagesFile = folderFile;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.gallery_images_relative_layout,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position)
{
File imageFile = imagesFile.listFiles()[position];
Bitmap imageBitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
holder.getImageView().setImageBitmap(imageBitmap);
}
@Override
public int getItemCount()
{
if(MainActivity.checkIfGalleryEmpty(imagesFile)==true)
return 0;
else
return imagesFile.listFiles().length;
}
public static class ViewHolder extends RecyclerView.ViewHolder
{
private ImageView imageView;
public ViewHolder(View view)
{
super(view);
imageView = (ImageView) view.findViewById(R.id.imageGalleryView);
}
public ImageView getImageView()
{
return imageView;
}
}
}
我不确定将onClickListener 方法放在哪里(应该放在这里还是在我的主要位置?)或者如何实现显示更大图像的onClickListener。此外,显示的按钮必须执行一个功能,因此它也将有一个onClicklistener,可能在另一个活动文件中。如果您考虑到我拥有的框架,对如何实现这一点有任何提示或建议,请告诉我。如果有帮助的话,我也愿意发布我的 MainActivity 文件的部分内容。
【问题讨论】:
-
在此处注册您的 onclicklistener imageView = (ImageView) view.findViewById(R.id.imageGalleryView 并打开一个新活动
-
只需设置 Onclick 并使用shared element transition 以获得更好的效果。
-
使用缩放视图(查看我的答案)developer.android.com/training/animation/zoom.html
标签: java android android-recyclerview onclicklistener