Java Android Studio和Firebase:全屏显示ImageView
我有一个屏幕,显示我的电影名称和他们的照片,这些都在我的Firebase中。它显示了 我的数据库的结构是这样的。name是字符串,它是我的电影的名称。profilePic是包含Firebase存储中图片链接的字符串 我想要的是,当我点击列出的任何图片时,我想在另一个更大的活动上显示它,比如打开某人的WhatsApp或Facebook个人资料图片 这些是我的课程,效果非常好。我该怎么做 Movies.java activity_movies.xml cardview.xmlJava Android Studio和Firebase:全屏显示ImageView,java,android,firebase,firebase-realtime-database,android-imageview,Java,Android,Firebase,Firebase Realtime Database,Android Imageview,我有一个屏幕,显示我的电影名称和他们的照片,这些都在我的Firebase中。它显示了 我的数据库的结构是这样的。name是字符串,它是我的电影的名称。profilePic是包含Firebase存储中图片链接的字符串 我想要的是,当我点击列出的任何图片时,我想在另一个更大的活动上显示它,比如打开某人的WhatsApp或Facebook个人资料图片 这些是我的课程,效果非常好。我该怎么做 Movies.java activity_movies.xml cardview.xml 您可以使用此库实现放大
您可以使用此库实现放大和缩小功能,如链接 您需要在项目中添加此渐变 实现'com.otaliastudios:zoomlayout:1.6.1' 检查下面的示例布局
<?xml version="1.0" encoding="utf-8"?>
调整位图大小:
使用视图作为修改视图保持架
class MyViewHolder extends RecyclerView.ViewHolder
{
TextView name;
ImageView profilePic;
View mView;
public MyViewHolder(@NonNull View itemView)
{
super(itemView);
mView = itemView;
name = (TextView) itemView.findViewById(R.id.film_name);
profilePic = (ImageView) itemView.findViewById(R.id.filmProfile);
}
}
在适配器中实现视图持有者的单击侦听器,然后使用图像url启动活动
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
myViewHolder.name.setText(profiles.get(i).getName());
Picasso.get().load(profiles.get(i).getProfilePic()).into(myViewHolder.profilePic);
mViewHolder.mView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
startImageActivity(profiles.get(i).getProfilePic());
}
});
}
3.创建活动并从所需维度的图像视图开始
void startImageActivity(String imgUrl)
{
Intent intent = new Intent(context,ViewImage.class);
intent.putExtra("profilePic",imgUrl);
context.startActivity(intent);
}
或者要在外部应用程序中打开映像,请尝试
void startImageActivity(String imgUrl)
{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(imgUrl));
context.startActivity(intent);
}
在listView中实现McClickListener。@Wicaledon请检查以下解决方案,并在出现问题时通知我concern@RavindraKushwaha我正在努力适应我的课程,我会做反馈OK@Wicaledon,@RavindraKushwaha你能帮我适应吗?因为有一些缺少的类,比如ActivityZoomBinding,我只是不理解第三部分。我总是用这些行进行另一项活动Intent I=newintentmenu.this,Social.class;i、 putextra_消息,消息;startActivityForResulti,1;覆盖transitionr.anim.slide\u in\u right,R.anim.slide\u out\u left;在我的每项活动中,除了这个,它不允许更新第三部分以更好地理解。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dark_grey"
android:orientation="vertical"
android:weightSum="13">
<ImageView
android:id="@+id/iv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_margin="@dimen/margin_small"
android:padding="@dimen/margin_small"
android:src="@drawable/ic_skip" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="6" />
<com.otaliastudios.zoom.ZoomImageView
android:id="@+id/zoom_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:scrollbars="vertical|horizontal"
app:alignment="center"
app:animationDuration="280"
app:flingEnabled="true"
app:horizontalPanEnabled="true"
app:maxZoom="2.5"
app:maxZoomType="zoom"
app:minZoom="0.7"
app:minZoomType="zoom"
app:overPinchable="true"
app:overScrollHorizontal="true"
app:overScrollVertical="true"
app:transformation="centerInside"
app:transformationGravity="auto"
app:verticalPanEnabled="true"
app:zoomEnabled="true" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="5" />
</LinearLayout>
GlideApp.with(this)
.asBitmap()
.load(YOUR_IMAGE_URL)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
YOUR_IMAGEVIEW.setImageBitmap(resource);
}
});
public class ZoomActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_zoom);
// ActivityZoomBinding mBinding = DataBindingUtil.setContentView(this, R.layout.activity_zoom);
ImageView zoomImage = findViewById(R.id.zoom_image);
///GETTING INTENT DATA
Intent intent = getIntent();
if (intent.hasExtra("ZOOM_IMAGE")) {
String imageUrl = intent.getStringExtra("ZOOM_IMAGE");
GlideApp.with(this)
.asBitmap()
.load(imageUrl)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
zoomImage.setImageBitmap(resource);
}
});
}
}
}
Bitmap resizedBitmap = Bitmap.createScaledBitmap(
originalBitmap, newWidth, newHeight, false);
class MyViewHolder extends RecyclerView.ViewHolder
{
TextView name;
ImageView profilePic;
View mView;
public MyViewHolder(@NonNull View itemView)
{
super(itemView);
mView = itemView;
name = (TextView) itemView.findViewById(R.id.film_name);
profilePic = (ImageView) itemView.findViewById(R.id.filmProfile);
}
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
myViewHolder.name.setText(profiles.get(i).getName());
Picasso.get().load(profiles.get(i).getProfilePic()).into(myViewHolder.profilePic);
mViewHolder.mView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
startImageActivity(profiles.get(i).getProfilePic());
}
});
}
void startImageActivity(String imgUrl)
{
Intent intent = new Intent(context,ViewImage.class);
intent.putExtra("profilePic",imgUrl);
context.startActivity(intent);
}
void startImageActivity(String imgUrl)
{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(imgUrl));
context.startActivity(intent);
}