|
package com.electric.chargingpile.activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.electric.chargingpile.R;
import com.electric.chargingpile.util.Bimp;
import com.electric.chargingpile.util.PublicWayFour;
import com.electric.chargingpile.util.PublicWayONE;
import com.electric.chargingpile.util.Res;
import com.electric.chargingpile.util.Util;
import com.electric.chargingpile.widge.photoview.PhotoView;
import com.electric.chargingpile.widge.photoview.ZoomingViewpager;
import com.luck.picture.lib.entity.LocalMedia;
import java.util.ArrayList;
import java.util.List;
public class ImageDisplayActivity extends AppCompatActivity implements View.OnClickListener {
// 返回按钮
private TextView back_bt;
// 发送按钮
private TextView send_bt;
//删除按钮
private TextView del_bt;
//顶部显示预览图片位置的textview
private TextView positionTextView;
//获取前一个activity传过来的position
private int position;
private ArrayList<View> listViews = null;
private ZoomingViewpager pager;
private MyPageAdapter adapter;
public List<Bitmap> bmp = new ArrayList<Bitmap>();
public List<String> drr = new ArrayList<String>();
public List<String> del = new ArrayList<String>();
private Context mContext;
RelativeLayout photo_relativeLayout;
@Override
protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gallery_activity_alter);
back_bt = (TextView) findViewById(R.id.gallery_back);
send_bt = (TextView) findViewById(R.id.send_button);
del_bt = (TextView) findViewById(R.id.gallery_del);
// back_bt.setOnClickListener(new BackListener());
send_bt.setOnClickListener(this);
del_bt.setOnClickListener(this);
// 为发送按钮设置文字
pager = (ZoomingViewpager) findViewById(R.id.gallery01);
pager.setBackgroundColor(getResources().getColor(R.color.white));
initListViews(Bimp.tempSelectMedia);
adapter = new MyPageAdapter(listViews);
pager.setAdapter(adapter);
pager.setOnPageChangeListener(pageChangeListener);
pager.setPageMargin((int) getResources().getDimensionPixelOffset(Res.getDimenID("ui_10_dip")));
position = getIntent().getIntExtra("position",0);
pager.setCurrentItem(this.position);
isShowOkBt();
}
private ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
send_bt.setText(Res.getString("finish") + "(" + (arg0 + 1) + "/" + Bimp.tempSelectMedia.size() + ")");
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
};
public void isShowOkBt() {
if (Bimp.tempSelectMedia.size() > 0) {
send_bt.setPressed(true);
send_bt.setClickable(true);
send_bt.setText(Res.getString("finish") + "(" + (pager.getCurrentItem()+1) + "/" + Bimp.tempSelectMedia.size() + ")");
send_bt.setTextColor(getResources().getColor(R.color.lvse));
} else {
send_bt.setPressed(false);
send_bt.setClickable(false);
send_bt.setTextColor(Color.parseColor("#E1E0DE"));
}
}
private void initListViews(List<LocalMedia> list) {
if (listViews == null)
listViews = new ArrayList<View>();
for (LocalMedia media:list){
PhotoView img = new PhotoView(this);
img.setBackgroundColor(0xffffffff);
String path = Util.getCompressAbsolutePath(media);
Glide.with(this)
.load(path)
.into(img);
img.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
listViews.add(img);
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.send_button:
finish();
break;
case R.id.gallery_del:
if (listViews.size() == 1) {
Bimp.tempSelectMedia.clear();
send_bt.setText(Res.getString("finish") + "(" + (pager.getCurrentItem()+1) + "/" + Bimp.tempSelectMedia.size() + ")");
finish();
} else {
Bimp.tempSelectMedia.remove(pager.getCurrentItem());
pager.removeAllViews();
listViews.remove(pager.getCurrentItem());
adapter.setListViews(listViews);
adapter.notifyDataSetChanged();
send_bt.setText(Res.getString("finish") + "(" + (pager.getCurrentItem()+1) + "/" + Bimp.tempSelectMedia.size() + ")");
}
break;
}
}
class MyPageAdapter extends PagerAdapter {
private ArrayList<View> listViews;
private int size;
public MyPageAdapter(ArrayList<View> listViews) {
this.listViews = listViews;
size = listViews == null ? 0 : listViews.size();
}
public void setListViews(ArrayList<View> listViews) {
this.listViews = listViews;
size = listViews == null ? 0 : listViews.size();
}
public int getCount() {
return size;
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
public void destroyItem(View arg0, int arg1, Object arg2) {
((ZoomingViewpager) arg0).removeView(listViews.get(arg1 % size));
}
public void finishUpdate(View arg0) {
}
public Object instantiateItem(View arg0, int arg1) {
try {
((ZoomingViewpager) arg0).addView(listViews.get(arg1 % size), 0);
} catch (Exception e) {
}
return listViews.get(arg1 % size);
}
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}
public static void actionStart(Context context,int position){
Intent intent = new Intent(context, ImageDisplayActivity.class);
intent.putExtra("position",position);
context.startActivity(intent);
}
}
|