老样子,没有废话直接干货。
首先Activity代码:
public class ShowImageActivity extends BaseActivity {
@Bind(R.id.viewPager)
ViewPager viewPager;
@Bind(R.id.show_image_text)
TextView showImageText;
@Bind(R.id.iv_back)
ImageView ivBack;
@Bind(R.id.tv_title)
TextView tvTitle;
@Bind(R.id.image_text)
TextView imageText;
@Bind(R.id.shousuo_image)
ImageView shousuoImage;
@Bind(R.id.shousuo_text)
TextView shousuoText;
@Bind(R.id.shousuo)
LinearLayout shousuo;
@Bind(R.id.title_relative)
RelativeLayout titleRelative;
@Bind(R.id.show_popup)
LinearLayout showPopup;
private String context;
JSONArray jsonArray = null;
private JSONArray jsonContentArray;
private int index;
private JSONArray jsonTextArray;
@Override
public int getLayout() {
return R.layout.activity_show_image;
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onResume() {
super.onResume();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
}
private boolean isText = false;
@Override
public void initData() {
titleRelative.setBackgroundColor(getResources().getColor(R.color.black));
tvTitle.setText("图片详情");
setWindowStatusBarColor(this, R.color.black);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
Intent intent = getIntent();
String title = intent.getStringExtra("title");
context = intent.getStringExtra("context");
String json = intent.getStringExtra("json");
String text = intent.getStringExtra("text");
String jsonContent = intent.getStringExtra("jsonContent");
index = intent.getIntExtra("index", -1);
if (!TextUtils.isEmpty(text)) {
try {
jsonTextArray = new JSONArray(text);
} catch (JSONException e) {
e.printStackTrace();
}
}
if (jsonContent != null) {
try {
jsonContentArray = new JSONArray(jsonContent);
} catch (JSONException e) {
e.printStackTrace();
}
}
tvTitle.setText(title);
ivBack.setVisibility(View.VISIBLE);
ivBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
finish();
}
});
ArrayListarrayList = new ArrayList<>();
if (!TextUtils.isEmpty(json)) {
try {
jsonArray = new JSONArray(json);
if (jsonArray != null) {
if (TextUtils.isEmpty(context)) {
imageText.setVisibility(View.VISIBLE);
if (jsonTextArray != null) {
imageText.setText(jsonTextArray.getString(0));
}
showImageText.setText(jsonContentArray.getString(0));
} else {
imageText.setVisibility(View.GONE);
showImageText.setText(context + " " + 1 + "/" + jsonArray.length());
}
for (int i = 0; i < jsonArray.length(); i++) {
String string = jsonArray.getString(i);
arrayList.add(string);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
PagerAdapter pagerAdapter = new PagerAdapter(arrayList);
viewPager.setAdapter(pagerAdapter);
if (index != -1) {
viewPager.setCurrentItem(index);
if (jsonArray != null) {
if (TextUtils.isEmpty(context)) {
try {
showImageText.setText(jsonContentArray.getString(index));
} catch (JSONException e) {
e.printStackTrace();
}
} else {
showImageText.setText(context + " " + (index + 1) + "/" + jsonArray.length());
}
}
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// 显示ui
isText = false;
titleRelative.setVisibility(View.VISIBLE);
imageText.setVisibility(View.VISIBLE);
showImageText.setVisibility(View.VISIBLE);
if (jsonArray != null) {
if (TextUtils.isEmpty(context)) {
if (jsonTextArray != null) {
try {
imageText.setText(jsonTextArray.getString(position));
} catch (JSONException e) {
e.printStackTrace();
}
}
try {
showImageText.setText(jsonContentArray.getString(position));
} catch (JSONException e) {
e.printStackTrace();
}
} else {
showImageText.setText(context + " " + (position + 1) + "/" + jsonArray.length());
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
public static void setWindowStatusBarColor(Activity activity, int colorResId) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(activity.getResources().getColor(colorResId));
}
} catch (Exception e) {
e.printStackTrace();
}
}
float x1;
float x2;
float y1;
float y2;
boolean isMove = false;
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//当手指按下的时候
x1 = event.getX();
y1 = event.getY();
break;
case MotionEvent.ACTION_MOVE:
//当手指移动的时候
x2 = event.getX();
y2 = event.getY();
if ((y1 - y2 > 50) || (y2 - y1 > 50) || (x1 - x2 > 50) || (x2 - x1 > 50)) {
isMove = true;
}
break;
case MotionEvent.ACTION_UP:
//当手指抬起的时候
if (!isMove) {
if (isText) {
// 显示ui
isText = false;
titleRelative.setVisibility(View.VISIBLE);
imageText.setVisibility(View.VISIBLE);
showImageText.setVisibility(View.VISIBLE);
} else {
// 隐藏ui
isText = true;
titleRelative.setVisibility(View.INVISIBLE);
imageText.setVisibility(View.INVISIBLE);
showImageText.setVisibility(View.INVISIBLE);
}
}
isMove = false;
break;
}
return super.dispatchTouchEvent(event);
}
class PagerAdapter extends android.support.v4.view.PagerAdapter {
public ArrayListarrayList;
public PagerAdapter(ArrayListarrayList) {
this.arrayList = arrayList;
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View inflate = LayoutInflater.from(ShowImageActivity.this).inflate(R.layout.show_image_viewpager_item, null);
PhotoView viewById = inflate.findViewById(R.id.photoView);
RequestOptions options = new RequestOptions();
options.placeholder(R.mipmap.zhanweitu);
Glide.with(ShowImageActivity.this).load(arrayList.get(position)).apply(options).into(viewById);
container.addView(inflate);
return inflate;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
@Override
protected BasePresenter onCreatePresenter() {
return null;
}
}
然后是Activity的xml:
当然还有ViewPager的视图:
Activity上面传过来了一堆参数傻眼了吧,解释一下:
adapter.setListDataCallBack(new NewGongYongAdapter.ListDataCallBack() {
@Override
public void setOnListDataClick(int position) {
JSONArray jsonArray = new JSONArray();
JSONArray jsonContent = new JSONArray();
JSONArray josnText = new JSONArray();
for (int i = 0; i < list.size(); i++) {
AnLiBean.BodyBean bodyBean = list.get(i);
String catalogName = bodyBean.getIndustryTypeName();//标题
String filePath = bodyBean.getPreview();//图片路径
String projectName = bodyBean.getProjectName();//图片详细介绍
//图片详细介绍
josnText.put(projectName);
//图片路径
jsonArray.put(filePath);
//标题
jsonContent.put(catalogName);
}
Intent intent = new Intent(NewQiYeActivity.this, ShowImageActivity.class);
intent.putExtra("title", "详细照片");
intent.putExtra("json", jsonArray.toString());
intent.putExtra("context", "");
intent.putExtra("index", position);
intent.putExtra("jsonContent", jsonContent.toString());
intent.putExtra("text", josnText.toString());
startActivity(intent);
}
});
直接Copy拿走用即可。简单粗暴!