|
package com.electric.chargingpile.activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import com.electric.chargingpile.R;
import com.electric.chargingpile.application.MainApplication;
import com.electric.chargingpile.data.TopicDetailBean;
import com.electric.chargingpile.fragment.ImageScanTextFragment;
import com.electric.chargingpile.iview.RecyclerItemClickListener;
import com.electric.chargingpile.util.JsonUtils;
import com.electric.chargingpile.util.ToastUtil;
import com.electric.chargingpile.widge.photoview.PhotoView;
import com.electric.chargingpile.widge.photoview.PhotoViewAttacher;
import com.electric.chargingpile.widge.photoview.ZoomingViewpager;
import com.umeng.analytics.MobclickAgent;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import okhttp3.Call;
public class ZoomingPhotoTextActivity extends FragmentActivity implements PhotoViewAttacher.OnPhotoTapListener, View.OnClickListener, PlatformActionListener {
int position = 0, index = 0;
private RelativeLayout app_activity_redmandetail_title_left_layout;
private TextView act_zomming_current_pic_data, act_zomming_current_pic_all;
private ZoomingViewpager photoPager;
LinearLayout act_zomming_dot;
ImageScanAdapter samplePagerAdapter;
private RelativeLayout act_photo_content_view, act_zomming_bottom_comment, act_zomming_bottom_layout;
ScrollView act_photo_content_vieww;
public ArrayList<String> photoArrayList = new ArrayList<>();
private String targetId, targetType, targetUserId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
initView();
}
protected void initView() {
setContentView(R.layout.activity_zoom_car_photo);
act_zomming_current_pic_all = (TextView) findViewById(R.id.act_zomming_current_pic_all);
findViewById(R.id.app_activity_redmandetail_title_back_layout).setOnClickListener(this);
// act_photo_content = (TextView) findViewById(R.id.act_photo_content);
act_photo_content_view = (RelativeLayout) findViewById(R.id.act_photo_content_view);
act_zomming_bottom_comment = (RelativeLayout) findViewById(R.id.act_zomming_bottom_comment);
act_zomming_bottom_layout = (RelativeLayout) findViewById(R.id.act_zomming_bottom_layout);
act_photo_content_vieww = (ScrollView) findViewById(R.id.act_photo_content_vieww);
app_activity_redmandetail_title_left_layout = (RelativeLayout) findViewById(R.id
.app_activity_redmandetail_title_left_layout);
act_zomming_current_pic_data = (TextView) findViewById(R.id.act_zomming_current_pic_data);
targetId = getIntent().getStringExtra("targetId");
targetType = getIntent().getStringExtra("targetType");
targetUserId = getIntent().getStringExtra("targetUserId");
requestServer();
}
private void requestServer() {
String url = MainApplication.urlNew + "/topic/detail.do";
Map<String, String> map = new HashMap<>();
map.put("targetId", targetId);
map.put("targetType", targetType);
map.put("limit", "3");
if(!TextUtils.isEmpty(targetUserId)){
map.put("targetUserId", targetUserId);
}
OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
@Override
public void onError(Call call, Exception e) {
ToastUtil.showToast(ZoomingPhotoTextActivity.this, "加载失败,请重试", Toast.LENGTH_SHORT);
}
@Override
public void onResponse(String response) {
String rtnCode = JsonUtils.getKeyResult(response, "code");
if ("1000".equals(rtnCode)) {
String rtnMsg = JsonUtils.getKeyResult(response, "data");
ArrayList<TopicDetailBean> topicDetailBeans = (ArrayList<TopicDetailBean>) JsonUtils.parseToObjectList(rtnMsg, TopicDetailBean.class);
setData(topicDetailBeans);
}
}
});
}
private void setData(ArrayList<TopicDetailBean> topicDetailBeans) {
position = getIntent().getIntExtra("position", 0);
for (int i = 0; i < topicDetailBeans.size(); i++) {
photoArrayList.add(topicDetailBeans.get(i).coverImgUrl);
}
act_zomming_current_pic_all.setText("/" + photoArrayList.size());
initLayoutView();
index = position;
draw_Point(position);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPageEnd("图集详情页");
}
@Override
protected void onResume() {
super.onResume();
MobclickAgent.onPageStart("图集详情页");
}
/**
* 绘制游标背景
*/
int askFlg;
String subsidyPrice;
public void draw_Point(int index) {
act_zomming_current_pic_data.setText((index + 1) + "");
}
private void initLayoutView() {
act_zomming_dot = (LinearLayout) findViewById(R.id.act_zomming_dot);
photoPager = (ZoomingViewpager) findViewById(R.id.act_zoomingphoto_photo);
samplePagerAdapter = new ImageScanAdapter(getSupportFragmentManager(), photoArrayList);
photoPager.setAdapter(samplePagerAdapter);
photoPager.setCurrentItem(position);
photoPager.addOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
index = arg0;
draw_Point(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
PhotoViewAttacher mAttacher;
PhotoView photoView;
/**
* A callback to receive where the user taps on a photo. You will only
* receive a callback if the user taps on the actual photo, tapping on
* 'whitespace' will be ignored.
*
* @param view - View the user tapped.
* @param x - where the user tapped from the of the Drawable, as
* percentage of the Drawable width.
* @param y - where the user tapped from the top of the Drawable, as
*/
@Override
public void onPhotoTap(View view, float x, float y) {
if (app_activity_redmandetail_title_left_layout.getVisibility() == View.VISIBLE) {
app_activity_redmandetail_title_left_layout.setVisibility(View.GONE);
act_photo_content_vieww.setVisibility(View.GONE);
act_photo_content_view.setVisibility(View.GONE);
// pdv.setVisibility(View.GONE);
act_zomming_bottom_comment.setVisibility(View.GONE);
act_zomming_bottom_layout.setVisibility(View.VISIBLE);
} else {
app_activity_redmandetail_title_left_layout.setVisibility(View.VISIBLE);
act_photo_content_vieww.setVisibility(View.VISIBLE);
act_photo_content_view.setVisibility(View.VISIBLE);
act_zomming_bottom_comment.setVisibility(View.VISIBLE);
act_zomming_bottom_layout.setVisibility(View.GONE);
}
// finish();
}
public void saveBitmap(String picName, Bitmap bm) {
if (bm != null) {
String result = "";
String folder = Environment.getExternalStorageDirectory().getAbsoluteFile() + File.separator + "touch/img/";
File folderFile = new File(folder);
try {
if (!folderFile.exists()) {
folderFile.mkdirs();
}
File f = new File(folder, picName);
if (!f.exists()) {
f.createNewFile();
}
FileOutputStream out = new FileOutputStream(f);
bm.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();
result = "success_sd";
// 其次把文件插入到系统图库
MediaStore.Images.Media.insertImage(getBaseContext().getContentResolver(),
f.getAbsolutePath(), picName, null);
result = "success";
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result = "fail";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result = "fail";
}
// bm.recycle();
// bm = null;
if ("success".equals(result)) {
Toast.makeText(this, "已成功保存到相册", Toast.LENGTH_SHORT).show();
} else if ("success_sd".equals(result)) {
Toast.makeText(this, "已成功保存到内存卡", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
}
}
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
Toast.makeText(getApplicationContext(), platform.getName(), Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
Toast.makeText(getApplicationContext(), platform.getName(), Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(Platform platform, int i) {
Toast.makeText(getApplicationContext(), platform.getName(), Toast.LENGTH_SHORT).show();
}
class ImageScanAdapter extends FragmentStatePagerAdapter {
private ArrayList<String> picData;
public ImageScanAdapter(FragmentManager fm, ArrayList<String> picData) {
super(fm);
this.picData = picData;
}
@Override
public Fragment getItem(int arg0) {
String picUrl = picData.get(arg0);
Bundle b = new Bundle();
if (!TextUtils.isEmpty(picUrl)) {
b.putString("url", picUrl);
}
ImageScanTextFragment f = new ImageScanTextFragment();
f.setArguments(b);
return f;
}
@Override
public int getCount() {
return picData.size();
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
private class MainAdapterItemClickListener implements RecyclerItemClickListener {
public void onItemClickListener(int index) {
position = 0;
// for (int i = 0; i < index; i++) {
// for (int j = 0; j < picsVos.get(i).picsBeanList.size(); j++) {
// position++;
// }
// }
draw_Point(position);
photoPager.setCurrentItem(position);
// }
}
}
/**
* 设置添加屏幕的背景透明度
*
* @param bgAlpha 屏幕透明度0.0-1.0 1表示完全不透明
*/
public void setBackgroundAlpha(float bgAlpha) {
WindowManager.LayoutParams lp = getWindow()
.getAttributes();
lp.alpha = bgAlpha;
getWindow().setAttributes(lp);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
}
|