充电桩app代码

ZoomingPhotoTextActivity.java 12KB

    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); } }