修改交友布局

This commit is contained in:
2025-08-26 19:34:44 +08:00
commit 8eb8ac5397
3152 changed files with 1442170 additions and 0 deletions

View File

@@ -0,0 +1,116 @@
package com.xscm.moduleutil.widget.img;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Point;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.viewpager.widget.ViewPager;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.R;
import java.util.List;
/**
* 看大图
*/
public class FullScreenUtil {
public static void showFullScreenDialog(Context context, final int pos, final List<String> imgList) {
final Dialog dialog = new Dialog(context, R.style.big_pic_dialog);
//设置是否允许Dialog可以被点击取消,也会阻止Back键
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
Window window = dialog.getWindow();
window.setGravity(Gravity.CENTER);
//获取Dialog窗体的根容器
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup root = (ViewGroup) dialog.getWindow().getDecorView().findViewById(android.R.id.content);
//设置窗口大小为屏幕大小item_img_pv
WindowManager wm = (WindowManager) context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
Point screenSize = new Point();
wm.getDefaultDisplay().getSize(screenSize);
root.setLayoutParams(new LinearLayout.LayoutParams(screenSize.x, screenSize.y));
// 获取自定义布局,并设置给Dialog
View view = inflater.inflate(R.layout.pop_photo_vp, root, false);
final ViewPager img_vp = view.findViewById(R.id.img_vp);
final TextView img_num_iv = view.findViewById(R.id.img_num_iv);
final ImageView img_down_iv = view.findViewById(R.id.img_down_iv);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
ImgVPAdapter vpAdapter = new ImgVPAdapter(context, imgList);
img_vp.setAdapter(vpAdapter);
img_vp.setCurrentItem(pos);
img_num_iv.setText((pos + 1) + "/" + imgList.size());
img_down_iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//保存
/* if (imgList.get(pos) != null) {
ImageSaveUtils.saveImg(XQDetailActivity.this, imgList.get(pos));
}*/
}
});
img_vp.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ToastUtils.show("保存成功");
return false;
}
});
img_vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(final int position) {
img_num_iv.setText((position + 1) + "/" + imgList.size());
img_down_iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if (imgList.get(position) != null) {
// ImageSaveUtils.saveImg(XQDetailActivity.this, imgList.get(position));
// }
}
});
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
vpAdapter.setAllClickListener(new ImgVPAdapter.AllClickListener() {
@Override
public void allclick(int pos) {
dialog.dismiss();
}
});
dialog.setContentView(view);
dialog.show();
}
}

View File

@@ -0,0 +1,99 @@
package com.xscm.moduleutil.widget.img;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewpager.widget.PagerAdapter;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.xscm.moduleutil.R;
import com.xscm.moduleutil.widget.ImageSaveUtils;
import java.util.List;
public class ImgVPAdapter extends PagerAdapter {
private Context context;
private List<String> paths;
public ImgVPAdapter(Context context, List<String> paths) {
this.context = context;
this.paths = paths;
}
@Override
public int getCount() {
return paths.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, final int position) {
ImageView iv_img = (ImageView) LayoutInflater.from(context).inflate(R.layout.item_img_pv, null);
// iv_img.setScaleType(ImageView.ScaleType.CENTER);
Glide.with(context).load( paths.get(position)).error(R.mipmap.default_image).into(iv_img);
iv_img.setScaleType(ImageView.ScaleType.CENTER);
iv_img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (allClickListener != null) {
allClickListener.allclick(position);
}
}
});
iv_img.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Glide.with(context)
.asBitmap()
.load(paths.get(position))
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
ImageSaveUtils.saveImg(context, resource);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
Toast.makeText(context, "图片加载失败", Toast.LENGTH_SHORT).show();
}
});
return true;
}
});
container.addView(iv_img);
return iv_img;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
public interface AllClickListener {
void allclick(int pos);
}
public AllClickListener allClickListener;
public void setAllClickListener(AllClickListener allClickListener) {
this.allClickListener = allClickListener;
}
}