gpt4 book ai didi

java - 单击时使 RecyclerView 图像全屏显示

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:28 24 4
gpt4 key购买 nike

我想在单击时使 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 方法放在哪里(应该放在此处还是在我的 main 中?)或如何实现显示更大图像的 onClickListener。此外,显示的按钮必须执行一个功能,因此也可能有一个 onClicklistener ,可能在另一个 Activity 文件中。如果您对如何考虑我的框架来实现这一点有任何提示或建议,请告诉我。如果有帮助的话,我也愿意发布我的 MainActivity 文件的部分内容。

最佳答案

在viewholder中注册onclick,如下所示:

public static class ViewHolder extends RecyclerView.ViewHolder
{
private ImageView imageView;

public ViewHolder(View view)
{
super(view);

ImageView imageView = (ImageView) view.findViewById(R.id.imageGalleryView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
//TODO: Zooming a View
}
});

}
public ImageView getImageView()
{
return imageView;
}
}

使用缩放 View 显示全尺寸图像。

Developer site for display fullsize image

希望这对您有帮助。

关于java - 单击时使 RecyclerView 图像全屏显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47447196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com