游戏求版本功能(未对接接口), 文章详情优化(文章内容跳转未做),消息中心(未接接口),首页资讯改版,跳转意见反馈规则汇总

This commit is contained in:
khy
2017-04-14 16:07:36 +08:00
parent 515473e5dc
commit 8f99987696
126 changed files with 5775 additions and 1850 deletions

View File

@ -1,9 +1,13 @@
package com.gh.gamecenter;
import android.app.Dialog;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Animatable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
@ -11,23 +15,37 @@ import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.facebook.common.executors.CallerThreadExecutor;
import com.facebook.common.references.CloseableReference;
import com.facebook.datasource.DataSource;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.BaseControllerListener;
import com.facebook.drawee.drawable.ScalingUtils;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.imagepipeline.core.ImagePipeline;
import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber;
import com.facebook.imagepipeline.image.CloseableImage;
import com.facebook.imagepipeline.image.ImageInfo;
import com.facebook.imagepipeline.request.ImageRequest;
import com.facebook.imagepipeline.request.ImageRequestBuilder;
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
import com.gh.base.BaseActivity;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.ImageUtils;
import com.gh.common.util.MessageShareUtils;
import com.gh.common.util.Utils;
import com.gh.common.view.Gh_RelativeLayout;
import com.gh.common.view.Gh_RelativeLayout.OnSingleTapListener;
import com.gh.common.view.Gh_ViewPager;
import com.gh.common.view.ZoomSimpleDraweeView;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
@ -188,11 +206,110 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe
}
});
//长按
imageView.setOnLongClickListener(new ZoomSimpleDraweeView.setOnLongClickListener() {
@Override
public void onLongClick() {
final Dialog dialog = new Dialog(ViewImageActivity.this);
LinearLayout container = new LinearLayout(ViewImageActivity.this);
container.setOrientation(LinearLayout.VERTICAL);
container.setBackgroundColor(Color.WHITE);
final TextView reportTv = new TextView(ViewImageActivity.this);
reportTv.setPadding(DisplayUtils.dip2px(ViewImageActivity.this, 20), DisplayUtils.dip2px(ViewImageActivity.this, 12),
0, DisplayUtils.dip2px(ViewImageActivity.this, 12));
reportTv.setText("保存图片");
reportTv.setTextSize(17);
reportTv.setTextColor(ViewImageActivity.this.getResources().getColor(R.color.title));
reportTv.setBackgroundResource(R.drawable.textview_white_style);
int widthPixels = ViewImageActivity.this.getResources().getDisplayMetrics().widthPixels;
reportTv.setLayoutParams(new LinearLayout.LayoutParams((widthPixels * 9)/10,
LinearLayout.LayoutParams.WRAP_CONTENT));
container.addView(reportTv);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(container);
dialog.show();
reportTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
findImageBM();
dialog.cancel();
}
});
}
});
view.setTag(position);
container.addView(view);
return view;
}
private void findImageBM() {
String key = urls.get(viewimage_vp_show.getCurrentItem());
String hdKey = "http://image.ghzhushou.com/pic/hq" + key.substring(key.lastIndexOf("/"));
ImagePipeline imagePipeline = Fresco.getImagePipeline();
String curUrl = null;
if (imagePipeline.isInBitmapMemoryCache(Uri.parse(hdKey))) {
curUrl = hdKey;
} else if (imagePipeline.isInBitmapMemoryCache(Uri.parse(key))){
curUrl = key;
} else {
return;
}
ImageRequest imageRequest = ImageRequestBuilder
.newBuilderWithSource(Uri.parse(key))
.setProgressiveRenderingEnabled(true)
.build();
DataSource<CloseableReference<CloseableImage>>
dataSource = imagePipeline.fetchDecodedImage(imageRequest, ViewImageActivity.this);
final String finalCurUrl = curUrl;
dataSource.subscribe(new BaseBitmapDataSubscriber() {
@Override
protected void onNewResultImpl(Bitmap bitmap) {
saveImage(bitmap, finalCurUrl);
}
@Override
protected void onFailureImpl(DataSource<CloseableReference<CloseableImage>> dataSource) {
}
}, CallerThreadExecutor.getInstance());
}
private void saveImage(Bitmap bitmap, String curUrl) {
String fileName = curUrl.substring(curUrl.lastIndexOf("/"));
String savePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/ghzhushou/";
try {
File file = new File(savePath);
if (!file.exists()) {
file.mkdirs();
}
File f = new File(savePath, fileName);
if (f.exists()) {
f.delete();
}
FileOutputStream out = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();
Utils.log("========保存成功");
MessageShareUtils.refreshImage(new File(savePath), ViewImageActivity.this);
} catch (IOException e) {
Utils.log("========保存失败" + e.toString());
System.out.println(e);
}
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;