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 listViews = null; private ZoomingViewpager pager; private MyPageAdapter adapter; public List bmp = new ArrayList(); public List drr = new ArrayList(); public List del = new ArrayList(); 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 list) { if (listViews == null) listViews = new ArrayList(); 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 listViews; private int size; public MyPageAdapter(ArrayList listViews) { this.listViews = listViews; size = listViews == null ? 0 : listViews.size(); } public void setListViews(ArrayList 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); } }