diff --git a/app/build.gradle b/app/build.gradle
index 49f087d112..99f1da1327 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -120,4 +120,17 @@ dependencies {
testCompile 'junit:junit:4.12'
compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.16'
compile 'com.android.support:cardview-v7:21.0.0'
+
+ compile ('com.facebook.fresco:fresco:0.12.0') {
+ exclude module: 'support-v4'
+ }
+ compile ('com.facebook.fresco:animated-gif:0.12.0') {
+ exclude module: 'support-v4'
+ }
+// compile ('com.facebook.fresco:animated-webp:0.12.0') {
+// exclude module: 'support-v4'
+// }
+// compile ('com.facebook.fresco:webpsupport:0.12.0') {
+// exclude module: 'support-v4'
+// }
}
\ No newline at end of file
diff --git a/app/libs/ShareSDK-QQ-2.7.2.jar b/app/libs/ShareSDK-QQ-2.7.2.jar
deleted file mode 100644
index a33586f01f..0000000000
Binary files a/app/libs/ShareSDK-QQ-2.7.2.jar and /dev/null differ
diff --git a/app/libs/ShareSDK-QZone-2.7.2.jar b/app/libs/ShareSDK-QZone-2.7.2.jar
deleted file mode 100644
index 954f7ad6aa..0000000000
Binary files a/app/libs/ShareSDK-QZone-2.7.2.jar and /dev/null differ
diff --git a/app/libs/ShareSDK-Wechat-2.7.2.jar b/app/libs/ShareSDK-Wechat-2.7.2.jar
deleted file mode 100644
index f263ec295a..0000000000
Binary files a/app/libs/ShareSDK-Wechat-2.7.2.jar and /dev/null differ
diff --git a/app/libs/ShareSDK-Wechat-Core-2.7.2.jar b/app/libs/ShareSDK-Wechat-Core-2.7.2.jar
deleted file mode 100644
index b10481cee6..0000000000
Binary files a/app/libs/ShareSDK-Wechat-Core-2.7.2.jar and /dev/null differ
diff --git a/app/libs/ShareSDK-Wechat-Moments-2.7.2.jar b/app/libs/ShareSDK-Wechat-Moments-2.7.2.jar
deleted file mode 100644
index f113d631d6..0000000000
Binary files a/app/libs/ShareSDK-Wechat-Moments-2.7.2.jar and /dev/null differ
diff --git a/app/libs/universal-image-loader-1.9.4.jar b/app/libs/universal-image-loader-1.9.4.jar
deleted file mode 100644
index 871d0e8f9c..0000000000
Binary files a/app/libs/universal-image-loader-1.9.4.jar and /dev/null differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c31c4fa763..a9e45bc826 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -133,6 +133,8 @@
+
> imageCache = new ArrayMap>();
-
- ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
public static ImageUtils getInstance(Context context) {
if (singleton == null) {
synchronized (ImageUtils.class) {
if (singleton == null) {
- singleton = new ImageUtils(context.getApplicationContext(),
- (int) Runtime.getRuntime().maxMemory() / 10);
+ singleton = new ImageUtils();
return singleton;
}
-
}
}
return singleton;
}
- private ImageUtils(Context context, int size) {
- options = new DisplayImageOptions.Builder().cacheInMemory(true)
- .cacheOnDisk(true).considerExifParams(true)
- .bitmapConfig(Bitmap.Config.RGB_565)
- .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
- // .showImageOnLoading(R.drawable.ocupy)
- // .showImageForEmptyUri(R.drawable.ocupy)
- // .showImageOnFail(R.drawable.ocupy)
+ // 自适应图片宽高
+ public void display (String url , final SimpleDraweeView simpleDraweeView, final Context context, final int paddingSize){
+ ControllerListener listener = new BaseControllerListener(){
+ @Override
+ public void onFinalImageSet(String id, Object imageInfo, Animatable animatable) {
+ super.onFinalImageSet(id, imageInfo, animatable);
+ if (imageInfo == null){
+ return;
+ }
+ ImageInfo imageInfo1 = (ImageInfo) imageInfo;
+ int height = imageInfo1.getHeight();
+ int width = imageInfo1.getWidth();
+ int widthPixels = context.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(context,paddingSize);
+ float index = (float) height / (float) width;
+ int newHeight = (int)(index * widthPixels);
+ ViewGroup.LayoutParams layoutParams = simpleDraweeView.getLayoutParams();
+ layoutParams.height = newHeight;
+ simpleDraweeView.setLayoutParams(layoutParams);
+ }
+
+ @Override
+ public void onIntermediateImageSet(String id, Object imageInfo) {
+ super.onIntermediateImageSet(id, imageInfo);
+ }
+
+ @Override
+ public void onIntermediateImageFailed(String id, Throwable throwable) {
+ super.onIntermediateImageFailed(id, throwable);
+ }
+
+ @Override
+ public void onFailure(String id, Throwable throwable) {
+ super.onFailure(id, throwable);
+ }
+
+ @Override
+ public void onRelease(String id) {
+ super.onRelease(id);
+ }
+ };
+
+ DraweeController controller = Fresco.newDraweeControllerBuilder()
+ .setUri(url)
+ .setControllerListener(listener)
.build();
- ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
- context).writeDebugLogs()
- .memoryCacheExtraOptions(480, 800)
- .build();
+ simpleDraweeView.setController(controller);
- ImageLoader.getInstance().init(config);
- imageLoader = ImageLoader.getInstance();
}
- public void displayFile(String url, ImageView imageView) {
- imageLoader.displayImage(url, imageView, options,
- new ImageLoadingListener() {
+ //设置缩放类型,设置按压状态下的叠加图
+ public void display (String url , SimpleDraweeView simpleDraweeView, ScalingUtils.ScaleType scaleType, Context context){
+ GenericDraweeHierarchyBuilder builder =
+ new GenericDraweeHierarchyBuilder(context.getResources());
+ GenericDraweeHierarchy hierarchy = builder
+ .setFadeDuration(500)
+ .setPressedStateOverlay(new ColorDrawable(context.getResources().getColor(R.color.pressed_bg)))
+ .setPlaceholderImage(R.drawable.ocupy, ScalingUtils.ScaleType.CENTER)
+ .setBackground(new ColorDrawable(Color.parseColor("#ececec")))
+ .setActualImageScaleType(scaleType)
+ .build();
+ simpleDraweeView.setHierarchy(hierarchy);
+ simpleDraweeView.setImageURI(url);
- @Override
- public void onLoadingCancelled(String arg0, View arg1) {
-
- }
-
- @Override
- public void onLoadingComplete(String arg0, View view,
- Bitmap arg2) {
- AlphaAnimation animation = new AlphaAnimation(0f, 1f);
- animation.setDuration(500);
- view.startAnimation(animation);
- }
-
- @Override
- public void onLoadingFailed(String arg0, View arg1,
- FailReason arg2) {
-
- }
-
- @Override
- public void onLoadingStarted(String arg0, View arg1) {
-
- }
-
- });
- }
- //增加一个上下文环境,图片宽度设最大(paddSize为左右边距大小),高度自适应
- public void display(String url, ImageView imageView, int drawable, Context context, int paddingSize) {
- display(url, imageView, drawable, ScaleType.FIT_XY, null, context, paddingSize);
}
- public void display(String url, ImageView imageView, int drawable) {
- display(url, imageView, drawable, ScaleType.FIT_XY, null);
+ //设置占位符
+ public void display (String url , SimpleDraweeView simpleDraweeView, int placeholderImage, Context context){
+
+ GenericDraweeHierarchyBuilder builder =
+ new GenericDraweeHierarchyBuilder(context.getResources());
+ GenericDraweeHierarchy hierarchy = builder
+ .setFadeDuration(500)
+ .setPressedStateOverlay(new ColorDrawable(context.getResources().getColor(R.color.pressed_bg)))
+ .setBackground(new ColorDrawable(Color.parseColor("#ececec")))
+ .setPlaceholderImage(placeholderImage, ScalingUtils.ScaleType.CENTER)
+ .build();
+ simpleDraweeView.setHierarchy(hierarchy);
+ simpleDraweeView.setImageURI(url);
+
}
- public void display(final String url, final ImageView imageView,
- final int drawable, final ScaleType scaleType,
- final OnLoadingCompleteListener listener) {
- imageLoader.displayImage(url, imageView, options,
- new ImageLoadingListener() {
- @Override
- public void onLoadingComplete(String imageUri, View view,
- Bitmap loadedImage) {
- if (imageView instanceof CircleImageView) {
- imageView.setScaleType(ScaleType.CENTER_CROP);
- } else {
- imageView.setScaleType(scaleType);
- }
- if (listener != null) {
- listener.onLoadingComplete();
- }
- }
+ //图片下载监听
+ public void display (String url, SimpleDraweeView simpleDraweeView, ControllerListener listener){
- @Override
- public void onLoadingStarted(String imageUri, View view) {
- if (imageView instanceof CircleImageView) {
- imageView.setScaleType(ScaleType.CENTER_CROP);
- } else {
- imageView.setScaleType(ScaleType.CENTER);
- }
- if (drawable != -1) {
- imageView.setImageResource(drawable);
- }
- }
-
- @Override
- public void onLoadingCancelled(String imageUri, View view) {
-
- }
-
- @Override
- public void onLoadingFailed(String imageUri, View view,
- FailReason reason) {
-
- }
- });
+ DraweeController controller = Fresco.newDraweeControllerBuilder()
+ .setUri(url)
+ .setControllerListener(listener)
+ .build();
+ simpleDraweeView.setController(controller);
}
- public void display(final String url, final ImageView imageView,
- final int drawable, final ScaleType scaleType,
- final OnLoadingCompleteListener listener, final Context context, final int paddSize) {
- imageLoader.displayImage(url, imageView, options,
- new ImageLoadingListener() {
- @Override
- public void onLoadingComplete(String imageUri, View view,
- Bitmap loadedImage) {
- int width = loadedImage.getWidth();
- int height = loadedImage.getHeight();
- int widthPixels = context.getResources().getDisplayMetrics().widthPixels;
- widthPixels = widthPixels - DisplayUtils.dip2px(context,paddSize);
- float index = (float) height / (float) width;
- int newHeight = (int)(index * widthPixels);
+ //获取bitmap
+ public void display (String url, BaseBitmapDataSubscriber dataSubscriber, Context context){
+ ImageRequest imageRequest = ImageRequestBuilder
+ .newBuilderWithSource(Uri.parse(url))
+ .setProgressiveRenderingEnabled(true)
+ .build();
- ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
- if (layoutParams != null){
- layoutParams.height = newHeight;
- layoutParams.width = widthPixels;
- imageView.setLayoutParams(layoutParams);
- }
+ ImagePipeline imagePipeline = Fresco.getImagePipeline();
+ DataSource>
+ dataSource = imagePipeline.fetchDecodedImage(imageRequest, context);
+ dataSource.subscribe(dataSubscriber, CallerThreadExecutor.getInstance());
- if (imageView instanceof CircleImageView) {
- imageView.setScaleType(ScaleType.CENTER_CROP);
- } else {
- imageView.setScaleType(scaleType);
- }
- if (listener != null) {
- listener.onLoadingComplete();
- }
- }
-
- @Override
- public void onLoadingStarted(String imageUri, View view) {
- imageView.setScaleType(ScaleType.CENTER);
- if (drawable != -1) {
- imageView.setImageResource(drawable);
- }
- }
-
- @Override
- public void onLoadingCancelled(String imageUri, View view) {
-
- }
-
- @Override
- public void onLoadingFailed(String imageUri, View view,
- FailReason reason) {
-
- }
- });
- }
-
- public void display(final String url, final ImageView imageView,
- final int drawable, final ScaleType scaleType,
- final OnLoadingCompleteListener listener, final int i) {
- imageLoader.displayImage(url, imageView, options,
- new ImageLoadingListener() {
- @Override
- public void onLoadingComplete(String imageUri, View view,
- Bitmap loadedImage) {
- WeakReference bitmapWeakReference = imageCache.get(imageUri);
- try {
- if (bitmapWeakReference!=null){
- Bitmap bitmap = bitmapWeakReference.get();
- imageView.setImageBitmap(bitmap);
- }else {
- Matrix m = new Matrix();
- m.setRotate(i, (float) loadedImage.getWidth() / 2, (float) loadedImage.getHeight() / 2);
- Bitmap bm1 = Bitmap.createBitmap(loadedImage, 0, 0, loadedImage.getWidth(), loadedImage.getHeight(), m, true);
- imageView.setImageBitmap(bm1);
- WeakReference weakBM = new WeakReference(bm1);
- imageCache.put(imageUri, weakBM);
- }
-
- } catch (OutOfMemoryError ex) {
- Utils.log("Bitmap:::内存溢出");
- } catch (Exception e) {
- e.printStackTrace();
- }
- if (imageView instanceof CircleImageView) {
- imageView.setScaleType(ScaleType.CENTER_CROP);
- } else {
- imageView.setScaleType(scaleType);
- }
- if (listener != null) {
- listener.onLoadingComplete();
- }
- }
-
- @Override
- public void onLoadingStarted(String imageUri, View view) {
- imageView.setScaleType(ScaleType.CENTER);
- if (drawable != -1) {
- imageView.setImageResource(drawable);
- }
- }
-
- @Override
- public void onLoadingCancelled(String imageUri, View view) {
-
- }
-
- @Override
- public void onLoadingFailed(String imageUri, View view,
- FailReason reason) {
-
- }
- });
- }
-
- //获取图片BitMap
- public void loadBitmap(String url, ImageLoadingListener listener){
- imageLoader.loadImage(url, listener);
- }
-
- public void display(String url, ImageView imageView, ScaleType scaleType) {
- display(url, imageView, R.drawable.ocupy, scaleType, null);
- }
-
- public void display(String url, ImageView imageView) {
- display(url, imageView, R.drawable.ocupy, ScaleType.FIT_XY, null);
- }
-
- //旋转图片 i表示角度
- public void display(String url, ImageView imageView, int i, boolean isHorizontal) {
- display(url, imageView, R.drawable.ocupy, ScaleType.FIT_XY, null, i);
- }
-
- public void display(String url, ImageView imageView, ScaleType scaleType, OnLoadingCompleteListener listener) {
- display(url, imageView, R.drawable.ocupy, scaleType, listener);
- }
-
- public void display(String url, ImageView imageView, OnLoadingCompleteListener listener) {
- display(url, imageView, R.drawable.ocupy, ScaleType.FIT_XY, listener);
- }
-
- public interface OnLoadingCompleteListener {
- void onLoadingComplete();
}
}
diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java
index 43626164d5..adbe23fc14 100644
--- a/app/src/main/java/com/gh/common/util/ShareUtils.java
+++ b/app/src/main/java/com/gh/common/util/ShareUtils.java
@@ -23,9 +23,11 @@ import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import com.facebook.common.references.CloseableReference;
+import com.facebook.datasource.DataSource;
+import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber;
+import com.facebook.imagepipeline.image.CloseableImage;
import com.gh.gamecenter.R;
-import com.nostra13.universalimageloader.core.assist.FailReason;
-import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.tencent.connect.share.QQShare;
import com.tencent.connect.share.QzoneShare;
import com.tencent.mm.sdk.openapi.IWXAPI;
@@ -426,20 +428,9 @@ public class ShareUtils {
}
private void loadBitMap(final String iconUrl, final WXMediaMessage msg, final SendMessageToWX.Req req){
- ImageUtils.getInstance(context).loadBitmap(iconUrl, new ImageLoadingListener() {
+ ImageUtils.getInstance(context).display(iconUrl, new BaseBitmapDataSubscriber() {
@Override
- public void onLoadingStarted(String s, View view) {
-
- }
-
- @Override
- public void onLoadingFailed(String s, View view, FailReason failReason) {
-
- }
-
- @Override
- public void onLoadingComplete(String s, View view, Bitmap bitmap) {
-
+ protected void onNewResultImpl(Bitmap bitmap) {
Bitmap compressBp = compressBitmap(bitmap);
Bitmap resultBp = addBackGround(compressBp);
msg.thumbData = Util.bmpToByteArray(resultBp, true);
@@ -447,10 +438,10 @@ public class ShareUtils {
}
@Override
- public void onLoadingCancelled(String s, View view) {
-
+ protected void onFailureImpl(DataSource> dataSource) {
+ Utils.log("分享获取bitmap失败");
}
- });
+ }, context);
}
//添加背景,防止图片格式为PNG的图片分享出现黑框问题
diff --git a/app/src/main/java/com/gh/common/view/ChildLinearLayoutManager.java b/app/src/main/java/com/gh/common/view/ChildLinearLayoutManager.java
deleted file mode 100644
index d1fd68b4bf..0000000000
--- a/app/src/main/java/com/gh/common/view/ChildLinearLayoutManager.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.gh.common.view;
-
-import android.content.Context;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import android.view.ViewGroup;
-
-/**
- * Created by khy on 2016/8/9.
- */
-public class ChildLinearLayoutManager extends LinearLayoutManager {
-
- public ChildLinearLayoutManager(Context context) {
- super(context);
- }
-
- public ChildLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
- super(context, orientation, reverseLayout);
- }
- @Override
- public boolean canScrollVertically() {
- return false;
- }
- private int[] mMeasuredDimension = new int[1];
-
- @Override
- public void onMeasure(RecyclerView.Recycler recycler, RecyclerView.State state,
- int widthSpec, int heightSpec) {
-
- final int heightMode = View.MeasureSpec.getMode(heightSpec);
- final int heightSize = View.MeasureSpec.getSize(heightSpec);
-
- int height = 0;
- for (int i = 0; i < getItemCount(); i++) {
- measureScrapChild(recycler, i,
- View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED),
- View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED),
- mMeasuredDimension);
- height = height + mMeasuredDimension[0];
-
- }
- if (heightMode == View.MeasureSpec.EXACTLY){
- height = heightSize;
- }
-
- setMeasuredDimension(View.MeasureSpec.getSize(widthSpec), height);
- }
-
- private void measureScrapChild(RecyclerView.Recycler recycler, int position, int widthSpec,
- int heightSpec, int[] measuredDimension) {
- View view = recycler.getViewForPosition(position);
- if (view.getVisibility() == View.GONE) {
- measuredDimension[0] = 0;
- return;
- }
- super.measureChildWithMargins(view, 0, 0);
- RecyclerView.LayoutParams p = (RecyclerView.LayoutParams) view.getLayoutParams();
- int childHeightSpec = ViewGroup.getChildMeasureSpec(
- heightSpec,
- getPaddingTop() + getPaddingBottom() + getDecoratedTop(view) + getDecoratedBottom(view),
- p.height);
- view.measure(0, childHeightSpec);
- measuredDimension[0] = getDecoratedMeasuredHeight(view) + p.bottomMargin + p.topMargin;
- recycler.recycleView(view);
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java
index b136393519..5670c428d0 100644
--- a/app/src/main/java/com/gh/gamecenter/CropImageActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/CropImageActivity.java
@@ -16,7 +16,6 @@ import com.gh.common.constant.Config;
import com.gh.common.util.DialogUtils;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.FileUtils;
-import com.gh.common.util.ImageUtils;
import com.gh.common.util.TokenUtils;
import com.gh.common.view.CropImageCustom;
@@ -110,8 +109,9 @@ public class CropImageActivity extends BaseActivity {
String path = getIntent().getStringExtra("path");
- ImageUtils.getInstance(getApplicationContext()).displayFile(
- "file://" + path, cropimage_custom.getCropImageZoomView());
+ // TODO displayFile
+// ImageUtils.getInstance(getApplicationContext()).displayFile(
+// "file://" + path, cropimage_custom.getCropImageZoomView());
}
diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java
index c09e8b9a9a..3272a181e0 100644
--- a/app/src/main/java/com/gh/gamecenter/MainActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java
@@ -575,31 +575,35 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
- Gson gson = new Gson();
- GameEntity gameEntity = gson.fromJson(response.toString(), GameEntity.class);
- ConcernInfo concernInfo = concernManager.findConcernById(gameEntity.getId());
- if (concernInfo != null && gameEntity.getApk() != null
- && gameEntity.getApk().size() != 0) {
- HashMap packageNames = new HashMap<>();
- String packageName;
- for (int i = 0, size = gameEntity.getApk().size(); i < size; i++) {
- packageName = gameEntity.getApk().get(i).getPackageName();
- if (PackageManager.isInstalled(packageName)) {
- packageNames.put(packageName, true);
- } else {
- packageNames.put(packageName, false);
+ if (response.length() != 0) {
+ Gson gson = new Gson();
+ GameEntity gameEntity = gson.fromJson(response.toString(), GameEntity.class);
+ ConcernInfo concernInfo = concernManager.findConcernById(gameEntity.getId());
+ if (concernInfo != null && gameEntity.getApk() != null
+ && gameEntity.getApk().size() != 0) {
+ HashMap packageNames = new HashMap<>();
+ String packageName;
+ for (int i = 0, size = gameEntity.getApk().size(); i < size; i++) {
+ packageName = gameEntity.getApk().get(i).getPackageName();
+ if (PackageManager.isInstalled(packageName)) {
+ packageNames.put(packageName, true);
+ } else {
+ packageNames.put(packageName, false);
+ }
+ }
+ concernInfo.setTime(System.currentTimeMillis());
+ concernInfo.setPackageNames(packageNames);
+ concernManager.updateByConcern(concernInfo);
+ }
+
+ if (isNewFirstLaunch) {
+ //默认安装即为关注
+ if (!concernManager.isConcern(gameEntity.getId())) {
+ concernManager.addByEntity(gameEntity);
}
}
- concernInfo.setTime(System.currentTimeMillis());
- concernInfo.setPackageNames(packageNames);
- concernManager.updateByConcern(concernInfo);
- }
- if (isNewFirstLaunch) {
- //默认安装即为关注
- if (!concernManager.isConcern(gameEntity.getId())) {
- concernManager.addByEntity(gameEntity);
- }
}
+
addConcernCount();
if (cCount == size) {
update();
diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java
index 9a699ddf11..35fdecbf07 100644
--- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java
@@ -2,6 +2,8 @@ package com.gh.gamecenter;
import android.content.Intent;
import android.content.res.Configuration;
+import android.graphics.drawable.Animatable;
+import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -11,10 +13,15 @@ import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.ImageView.ScaleType;
import android.widget.RelativeLayout;
+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.drawee.view.SimpleDraweeView;
+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;
@@ -22,16 +29,11 @@ import com.gh.common.util.ImageUtils;
import com.gh.common.view.Gh_RelativeLayout;
import com.gh.common.view.Gh_RelativeLayout.OnSingleTapListener;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
-import pl.droidsonroids.gif.GifDrawable;
-import pl.droidsonroids.gif.GifImageView;
-
/**
* 查看游戏截图页面
@@ -53,7 +55,6 @@ public class ViewImageActivity extends BaseActivity implements
private int width;
private boolean isOrientation;
- private boolean isLoading = false;
private Handler handler = new Handler() {
@Override
@@ -66,27 +67,17 @@ public class ViewImageActivity extends BaseActivity implements
Object object = viewimage_vp_show.findViewWithTag(position);
if (object != null) {
RelativeLayout view = (RelativeLayout) object;
- ImageView imageView = (ImageView) view.findViewById(R.id.viewimage_iv_show);
+ SimpleDraweeView imageView = (SimpleDraweeView) view.findViewById(R.id.viewimage_iv_show);
final ProgressBarCircularIndeterminate progressBar = (ProgressBarCircularIndeterminate) view.findViewById(R.id.viewimage_pb_loading);
progressBar.setVisibility(View.VISIBLE);
- if (scaleType != null) {
- ImageUtils.getInstance(getApplicationContext()).display(
- urls.get(position), imageView, ScaleType.FIT_CENTER,
- new ImageUtils.OnLoadingCompleteListener() {
- @Override
- public void onLoadingComplete() {
- progressBar.setVisibility(View.GONE);
- }
- });
- } else {
- ImageUtils.getInstance(getApplicationContext()).display(
- urls.get(position), imageView, new ImageUtils.OnLoadingCompleteListener() {
- @Override
- public void onLoadingComplete() {
- progressBar.setVisibility(View.GONE);
- }
- });
- }
+ ImageUtils.getInstance(getApplicationContext()).display(urls.get(position), imageView
+ , new BaseControllerListener(){
+ @Override
+ public void onFinalImageSet(String id, Object imageInfo, Animatable animatable) {
+ super.onFinalImageSet(id, imageInfo, animatable);
+ progressBar.setVisibility(View.GONE);
+ }
+ });
}
}
@@ -151,32 +142,24 @@ public class ViewImageActivity extends BaseActivity implements
@Override
public Object instantiateItem(ViewGroup container, int position) {
String url = urls.get(position);
- Gh_RelativeLayout view;
- if (url.contains(".gif")) {
- view = (Gh_RelativeLayout) View.inflate(container.getContext(),
- R.layout.viewimage_gif_item, null);
- GifImageView gifImageView = (GifImageView) view.findViewById(R.id.viewimage_iv_gif);
- if (!isLoading) {
- loadGifData(gifImageView, urls.get(position));
- }
- } else {
- view = (Gh_RelativeLayout) View.inflate(container.getContext(),
- R.layout.viewimage_normal_item, null);
- ImageView imageView = (ImageView) view.findViewById(R.id.viewimage_iv_show);
- if (scaleType != null) {
- ImageUtils.getInstance(getApplicationContext()).display(
- urls.get(position), imageView, ScaleType.FIT_CENTER);
- } else if (isOrientation && imageView.getDrawable() == null) {
- ImageUtils.getInstance(getApplicationContext()).display(
- urls.get(position), imageView, 270, isOrientation);
- } else if (imageView.getDrawable() == null) {
- ImageUtils.getInstance(getApplicationContext()).display(
- urls.get(position), imageView);
- }
- if (!urls.get(position).startsWith("http://image.ghzhushou.com/pic/hq/")) {
- checkUrl(urls.get(position));
- }
+ Gh_RelativeLayout view = (Gh_RelativeLayout) View.inflate(container.getContext(),
+ R.layout.viewimage_normal_item, null);
+ SimpleDraweeView imageView = (SimpleDraweeView) view.findViewById(R.id.viewimage_iv_show);
+ ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url))
+ .setAutoRotateEnabled(false)
+ .build();
+ DraweeController controller = Fresco.newDraweeControllerBuilder()
+ .setImageRequest(request)
+ .setAutoPlayAnimations(true)
+ .build();
+ imageView.setController(controller);
+
+ if (scaleType != null || isOrientation) {
+ imageView.getHierarchy().setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
+ }
+ if (!urls.get(position).startsWith("http://image.ghzhushou.com/pic/hq/")) {
+ checkUrl(urls.get(position));
}
view.setOnSingleTapListener(this);
view.setTag(position);
@@ -184,46 +167,6 @@ public class ViewImageActivity extends BaseActivity implements
return view;
}
- private void loadGifData(final GifImageView gifImageView, final String gifUrl) {
- isLoading = true;
- gifImageView.setImageResource(R.drawable.ocupy);
- gifImageView.setScaleType(ScaleType.CENTER);
- final GifDrawable[] gifDrawable = {null};
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- URL url = new URL(gifUrl);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("GET");
- conn.setConnectTimeout(5 * 1000);
- conn.setReadTimeout(5 * 1000);
- conn.connect();
- if (conn.getResponseCode() == 200) {
- InputStream inputStream = conn.getInputStream();
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- byte[] data = new byte[1024 * 5];
- int count = -1;
- while ((count = inputStream.read(data, 0, 1024 * 5)) != -1) {
- output.write(data, 0, count);
- }
- byte[] bytes = output.toByteArray();
- gifDrawable[0] = new GifDrawable(bytes);
- handler.post(new Runnable() {
- @Override
- public void run() {
- gifImageView.setImageDrawable(gifDrawable[0]);
- gifImageView.setScaleType(ScaleType.FIT_CENTER);
- }
- });
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }).start();
- }
-
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java
new file mode 100644
index 0000000000..5fbfa6d7fd
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java
@@ -0,0 +1,77 @@
+package com.gh.gamecenter;
+
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.View;
+import android.webkit.WebChromeClient;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.widget.ProgressBar;
+
+import com.gh.base.BaseActivity;
+
+/**
+ * Created by khy on 2016/10/18.
+ */
+public class WebActivity extends BaseActivity {
+ private WebView mWebView;
+ private ProgressBar mProgressBar;
+
+ private String webUrl;
+ private String webTitle;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ Bundle extras = getIntent().getExtras();
+ webUrl = extras.getString("url");
+ webTitle = extras.getString("gameName");
+
+ View contentView = View.inflate(this, R.layout.activity_web, null);
+ init(contentView, webTitle);
+
+ mWebView = (WebView) findViewById(R.id.news_webview);
+ mProgressBar = (ProgressBar) findViewById(R.id.web_progressbar);
+
+ mWebView.loadUrl(webUrl);
+
+ WebSettings settings = mWebView.getSettings();
+ settings.setJavaScriptEnabled(true);
+
+ //用webview打开url
+ mWebView.setWebViewClient(new WebViewClient(){
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ view.loadUrl(url);
+ return true;
+ }
+ });
+
+ //设置加载进度条
+ mWebView.setWebChromeClient(new WebChromeClient(){
+ @Override
+ public void onProgressChanged(WebView view, int newProgress) {
+ mProgressBar.setProgress(newProgress);
+ if (newProgress == 100){
+ mProgressBar.setVisibility(View.GONE);
+ } else {
+ if (mProgressBar.getVisibility() == View.GONE) {
+ mProgressBar.setVisibility(View.VISIBLE);
+ }
+ }
+ }
+ });
+
+ }
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {
+ mWebView.goBack();// 返回前一个页面
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
+}
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java
index 334ceec242..e4c34b936f 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernAdapter.java
@@ -14,7 +14,6 @@ import com.gh.common.constant.Config;
import com.gh.common.util.DataUtils;
import com.gh.common.util.DialogUtils;
import com.gh.common.util.GameUtils;
-import com.gh.common.util.ImageUtils;
import com.gh.gamecenter.ConcernActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder;
@@ -123,7 +122,8 @@ public class ConcernAdapter extends RecyclerView.Adapter {
@Override
public void onBindViewHolder(final ConcernViewHolder holder, int position) {
ConcernInfo concernInfo = concernList.get(position);
- ImageUtils.getInstance(context).display(concernInfo.getIcon(), holder.concern_item_icon);
+// ImageUtils.getInstance(context).display(concernInfo.getIcon(), holder.concern_item_icon);
+ holder.concern_item_icon.setImageURI(concernInfo.getIcon());
holder.concern_item_name.setText(concernInfo.getGameName());
holder.concern_item_concern.setText("取消关注");
holder.concern_item_concern.setBackgroundResource(R.drawable.textview_cancel_style);
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java
index b672862fa8..4de296edb0 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/ConcernRecommendAdapter.java
@@ -13,7 +13,6 @@ import com.gh.base.AppController;
import com.gh.common.constant.Config;
import com.gh.common.util.DataUtils;
import com.gh.common.util.GameUtils;
-import com.gh.common.util.ImageUtils;
import com.gh.gamecenter.ConcernActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.adapter.viewholder.ConcernViewHolder;
@@ -144,8 +143,9 @@ public class ConcernRecommendAdapter extends RecyclerView.Adapter {
.getPlatformPicPath(apkEntity.getPlatform());
if (path != null) {
viewHolder.download_item_iv_pic.setVisibility(View.VISIBLE);
- ImageUtils.getInstance(context).display(
- "file://" + path, viewHolder.download_item_iv_pic);
+// ImageUtils.getInstance(context).display(
+// "file://" + path, viewHolder.download_item_iv_pic);
+ viewHolder.download_item_iv_pic.setImageURI(Uri.fromFile(new File(path)));
viewHolder.download_item_tv_hint.setVisibility(View.GONE);
viewHolder.download_item_progressbar.setVisibility(View.GONE);
viewHolder.download_item_tv_name.setVisibility(View.GONE);
@@ -310,9 +312,9 @@ public class PlatformAdapter extends RecyclerView.Adapter {
viewHolder.download_item_tv_status.setVisibility(View.GONE);
viewHolder.itemView.setBackgroundColor(0x00ffffff);
- ImageUtils.getInstance(context).display(
- apkEntity.getApkCollection().getIcon(), viewHolder.download_item_iv_pic);
-
+// ImageUtils.getInstance(context).display(
+// apkEntity.getApkCollection().getIcon(), viewHolder.download_item_iv_pic);
+ viewHolder.download_item_iv_pic.setImageURI(apkEntity.getApkCollection().getIcon());
if (closeEntity.getPosition() == position && adapterPosition == closeEntity.getAdapterPosition()) {
viewHolder.download_item_open_collection.setVisibility(View.GONE);
viewHolder.download_item_colse_collection.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java
index 193d98d427..600b5e2d1c 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java
@@ -12,7 +12,6 @@ import com.gh.common.util.DisplayUtils;
import com.gh.common.util.DownloadItemUtils;
import com.gh.common.util.GameUtils;
import com.gh.common.util.GameViewUtils;
-import com.gh.common.util.ImageUtils;
import com.gh.common.util.PlatformUtils;
import com.gh.common.view.CardLinearLayout;
import com.gh.download.DownloadManager;
@@ -156,7 +155,8 @@ public class PluginAdapter extends RecyclerView.Adapter
viewHolder.home1_game_order.setVisibility(View.GONE);
- ImageUtils.getInstance(context).display(gameEntity.getIcon(), viewHolder.gameThumb);
+// ImageUtils.getInstance(context).display(gameEntity.getIcon(), viewHolder.gameThumb);
+ viewHolder.gameThumb.setImageURI(gameEntity.getIcon());
if (gameEntity.isPluggable()) {
viewHolder.gameNameAndSize.setText(gameEntity.getName() + " - " +
PlatformUtils.getInstance(context).getPlatformName(gameEntity.getApk().get(0).getPlatform()));
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java
index 7d4d05cdca..4b9c14826a 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/SubjectAdapter.java
@@ -19,7 +19,6 @@ import com.gh.common.util.DisplayUtils;
import com.gh.common.util.DownloadItemUtils;
import com.gh.common.util.GameUtils;
import com.gh.common.util.GameViewUtils;
-import com.gh.common.util.ImageUtils;
import com.gh.common.view.CardLinearLayout;
import com.gh.download.DownloadManager;
import com.gh.gamecenter.R;
@@ -285,7 +284,8 @@ public class SubjectAdapter extends RecyclerView.Adapter img;
+ private String link;
+
+ public String getLink() {
+ return link;
+ }
+ public void setLink(String link) {
+ this.link = link;
+ }
public void setId(String id) {
this.id = id;
}
diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java
index 2941cfedb8..eb65261ee7 100644
--- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java
+++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.java
@@ -41,6 +41,17 @@ public class GameEntity {
private String link;
+ @SerializedName("concern_article_exists")
+ private boolean exists = true;
+
+ public boolean isExists() {
+ return exists;
+ }
+
+ public void setExists(boolean exists) {
+ this.exists = exists;
+ }
+
public String getLink() {
return link;
}
diff --git a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java
index e1776ee401..63883ed031 100644
--- a/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/game/Game1FragmentAdapter.java
@@ -599,7 +599,7 @@ public class Game1FragmentAdapter extends RecyclerView.Adapter installedList = concernManager.getInstalledGame();
- String gameId;
+ List installedTimes = new ArrayList<>();
+ count = 0;
+
+ //获取第一次安装时间,多版本获取最近安装版本时间
+ for (ConcernInfo concernInfo : installedList) {
+ HashMap packageNames = concernInfo.getPackageNames();
+ for (String s : packageNames.keySet()) {
+ if (packageNames.get(s)){
+ long installedTime = PackageUtils.getInstalledTime(getActivity(), s);
+ installedTimes.add(installedTime);
+ }
+ }
+ Collections.sort(installedTimes, new Comparator() {
+ @Override
+ public int compare(Long lhs, Long rhs) {
+ return rhs.compareTo(lhs);
+ }
+ });
+ concernInfo.setTime(installedTimes.get(0));//Time改为第一次安装时间
+ installedTimes.clear();
+ }
+
+ //对已安装的游戏排序
+ Collections.sort(installedList, new Comparator() {
+ @Override
+ public int compare(ConcernInfo lhs, ConcernInfo rhs) {
+ return String.valueOf(rhs.getTime()).compareTo(String.valueOf(lhs.getTime()));
+ }
+ });
+
+ String gameId;
final int size = installedList.size() + 1;
installGameList = new ArrayList<>();
@@ -288,7 +324,7 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
if (finalI == size - 1){
recommendGameList.add(gameEntity);
- }else {
+ }else if (gameEntity.isExists()){
installGameList.add(gameEntity);
}
@@ -344,7 +380,8 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
//自由排序
if (recommendGameList.size() < 4){
for (GameEntity gameEntity : installGameList) {
- if (recommendGameList.size() >= 4) continue;
+ if (recommendGameList.size() >= 4
+ || concernManager.isConcern(gameEntity.getId())) continue;
recommendGameList.add(gameEntity);
}
}
@@ -365,7 +402,7 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
private void initConcernRecommendView() {
news4_concern_ly.removeAllViews();
- ImageView ivIcon;
+ SimpleDraweeView ivIcon;
TextView tvName;
ImageView ivConcern;
@@ -376,13 +413,13 @@ public class News4Fragment extends BaseFragment implements SwipeRefreshLayout.On
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT);
params.weight = 1;
- ivIcon = (ImageView) view.findViewById(R.id.concern_item_icon);
+ ivIcon = (SimpleDraweeView) view.findViewById(R.id.concern_item_icon);
tvName = (TextView) view.findViewById(R.id.concern_item_name);
ivConcern = (ImageView) view.findViewById(R.id.concern_item_concern_iv);
view.findViewById(R.id.concern_item_concern).setVisibility(View.GONE);
ivConcern.setVisibility(View.VISIBLE);
- ImageUtils.getInstance(getActivity()).display(recommendGameList.get(i).getIcon(), ivIcon);
+ ImageUtils.getInstance(getActivity()).display(recommendGameList.get(i).getIcon(), ivIcon, R.drawable.ocupy, getActivity());
tvName.setText(recommendGameList.get(i).getName());
ivConcern.setImageResource(R.drawable.concern_select_true);
diff --git a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java
index eff4abacbf..8de62cdeca 100644
--- a/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/news/News4FragmentAdapter.java
@@ -8,7 +8,6 @@ import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
@@ -18,6 +17,8 @@ import com.android.volley.Response;
import com.android.volley.TimeoutError;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.DiskBasedCache;
+import com.facebook.drawee.drawable.ScalingUtils;
+import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.base.AppController;
import com.gh.common.constant.Config;
import com.gh.common.util.ConcernUtils;
@@ -32,6 +33,7 @@ import com.gh.common.view.CardLinearLayout;
import com.gh.gamecenter.NewsDetailActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.ViewImageActivity;
+import com.gh.gamecenter.WebActivity;
import com.gh.gamecenter.adapter.viewholder.FooterViewHolder;
import com.gh.gamecenter.db.info.ConcernInfo;
import com.gh.gamecenter.entity.ConcernEntity;
@@ -486,7 +488,8 @@ public class News4FragmentAdapter extends RecyclerView.Adapter list, final int position, int width, int type) {
- ImageView imageView;
+ private SimpleDraweeView getImageView(final List list, final int position, int width, int type) {
+ SimpleDraweeView imageView;
if (type == 0) {
- imageView = new ImageView(context);
+ imageView = new SimpleDraweeView(context);
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(
0, width / 3 - DisplayUtils.dip2px(context, 4));
lparams.setMargins(DisplayUtils.dip2px(context, 2), 0,
DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4));
lparams.weight = 1;
imageView.setLayoutParams(lparams);
- ImageUtils.getInstance(context).display(list.get(position), imageView, ImageView.ScaleType.CENTER_CROP);
+ ImageUtils.getInstance(context).display(list.get(position), imageView, ScalingUtils.ScaleType.CENTER_CROP, context);
} else if (type == 1) {
- imageView = new ImageView(context);
+ imageView = new SimpleDraweeView(context);
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(width, width / 2);
lparams.setMargins(DisplayUtils.dip2px(context, 2), 0,
DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4));
imageView.setLayoutParams(lparams);
- ImageUtils.getInstance(context).display(list.get(position), imageView, ImageView.ScaleType.CENTER_CROP);
+ ImageUtils.getInstance(context).display(list.get(position), imageView, ScalingUtils.ScaleType.CENTER_CROP, context);
} else {
- imageView = new ImageView(context);
+ imageView = new SimpleDraweeView(context);
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(
0, width / 2 - DisplayUtils.dip2px(context, 4));
lparams.setMargins(DisplayUtils.dip2px(context, 2), 0,
DisplayUtils.dip2px(context, 2), DisplayUtils.dip2px(context, 4));
lparams.weight = 1;
imageView.setLayoutParams(lparams);
- ImageUtils.getInstance(context).display(list.get(position), imageView, ImageView.ScaleType.CENTER_CROP);
+ ImageUtils.getInstance(context).display(list.get(position), imageView, ScalingUtils.ScaleType.CENTER_CROP, context);
}
imageView.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsConcernViewHolder.java b/app/src/main/java/com/gh/gamecenter/news/NewsConcernViewHolder.java
index 5396e36fa6..96eda17c9b 100644
--- a/app/src/main/java/com/gh/gamecenter/news/NewsConcernViewHolder.java
+++ b/app/src/main/java/com/gh/gamecenter/news/NewsConcernViewHolder.java
@@ -2,10 +2,10 @@ package com.gh.gamecenter.news;
import android.support.v7.widget.RecyclerView;
import android.view.View;
-import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.gamecenter.R;
/**
@@ -13,7 +13,7 @@ import com.gh.gamecenter.R;
*/
public class NewsConcernViewHolder extends RecyclerView.ViewHolder {
- public ImageView concernThumb;
+ public SimpleDraweeView concernThumb;
public LinearLayout contentPicLl;
public TextView concernTitle;
public TextView concerntTime;
@@ -25,7 +25,7 @@ public class NewsConcernViewHolder extends RecyclerView.ViewHolder {
concernContent = (TextView) itemView.findViewById(R.id.concern_rv_item_content);
concernRead = (TextView) itemView.findViewById(R.id.concern_rv_item_read);
- concernThumb = (ImageView) itemView.findViewById(R.id.concern_rv_item_thumb);
+ concernThumb = (SimpleDraweeView) itemView.findViewById(R.id.concern_rv_item_thumb);
concerntTime = (TextView) itemView.findViewById(R.id.concern_rv_item_time);
concernTitle = (TextView) itemView.findViewById(R.id.concern_rv_item_title);
contentPicLl = (LinearLayout) itemView.findViewById(R.id.concern_rv_item_iv_ll);
diff --git a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java
index eaf94dc034..4ab2567f82 100644
--- a/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/news/NewsFragment.java
@@ -47,7 +47,7 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener,
home_vp_content.setAdapter(new FragmentAdapter(getChildFragmentManager()));
home_vp_content.addOnPageChangeListener(this);
- currentItem = 0;
+ currentItem = 1;
if (savedInstanceState != null) {
currentItem = savedInstanceState.getInt("currentItem");
}
@@ -71,6 +71,16 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener,
}
private void initTextView() {
+ tv_guanzhu = new TextView(getActivity());
+ tv_guanzhu.setText("关注");
+ tv_guanzhu.setTextColor(getResources().getColor(R.color.title));
+ tv_guanzhu.setGravity(Gravity.CENTER);
+ tv_guanzhu.setOnClickListener(this);
+ LinearLayout.LayoutParams lparams4 = new LinearLayout.LayoutParams(
+ 0, DisplayUtils.dip2px(getActivity(), 35));
+ lparams4.weight = 1;
+ home_ll_top.addView(tv_guanzhu, lparams4);
+
tv_zixun = new TextView(getActivity());
tv_zixun.setText("资讯");
tv_zixun.setTextColor(getResources().getColor(R.color.theme));
@@ -101,15 +111,6 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener,
lparams3.weight = 1;
home_ll_top.addView(tv_gonglve, lparams3);
- tv_guanzhu = new TextView(getActivity());
- tv_guanzhu.setText("关注");
- tv_guanzhu.setTextColor(getResources().getColor(R.color.title));
- tv_guanzhu.setGravity(Gravity.CENTER);
- tv_guanzhu.setOnClickListener(this);
- LinearLayout.LayoutParams lparams4 = new LinearLayout.LayoutParams(
- 0, DisplayUtils.dip2px(getActivity(), 35));
- lparams4.weight = 1;
- home_ll_top.addView(tv_guanzhu, lparams4);
}
public class FragmentAdapter extends FragmentPagerAdapter{
@@ -121,13 +122,13 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener,
@Override
public Fragment getItem(int i) {
if (i == 0) {
- return new News1Fragment();
- } else if (i == 1) {
- return new News2Fragment();
- } else if (i == 2) {
- return new News3Fragment();
- } else {
return new News4Fragment();
+ } else if (i == 1) {
+ return new News1Fragment();
+ } else if (i == 2) {
+ return new News2Fragment();
+ } else {
+ return new News3Fragment();
}
}
@@ -141,13 +142,13 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener,
public void onClick(View v) {
super.onClick(v);
if (v == tv_zixun) {
- home_vp_content.setCurrentItem(0);
- } else if (v == tv_yuanchuang) {
home_vp_content.setCurrentItem(1);
- } else if (v == tv_gonglve) {
+ } else if (v == tv_yuanchuang) {
home_vp_content.setCurrentItem(2);
- } else if (v == tv_guanzhu) {
+ } else if (v == tv_gonglve) {
home_vp_content.setCurrentItem(3);
+ } else if (v == tv_guanzhu) {
+ home_vp_content.setCurrentItem(0);
}
}
@@ -167,22 +168,22 @@ public class NewsFragment extends HomeFragment implements View.OnClickListener,
@Override
public void onPageSelected(int position) {
- if (position == 0) {
+ if (position == 1) {
tv_zixun.setTextColor(getResources().getColor(R.color.theme));
tv_yuanchuang.setTextColor(getResources().getColor(R.color.title));
tv_gonglve.setTextColor(getResources().getColor(R.color.title));
tv_guanzhu.setTextColor(getResources().getColor(R.color.title));
- } else if (position == 1) {
+ } else if (position == 2) {
tv_zixun.setTextColor(getResources().getColor(R.color.title));
tv_yuanchuang.setTextColor(getResources().getColor(R.color.theme));
tv_gonglve.setTextColor(getResources().getColor(R.color.title));
tv_guanzhu.setTextColor(getResources().getColor(R.color.title));
- } else if (position == 2) {
+ } else if (position == 3) {
tv_zixun.setTextColor(getResources().getColor(R.color.title));
tv_yuanchuang.setTextColor(getResources().getColor(R.color.title));
tv_gonglve.setTextColor(getResources().getColor(R.color.theme));
tv_guanzhu.setTextColor(getResources().getColor(R.color.title));
- }else if (position == 3){
+ }else if (position == 0){
tv_zixun.setTextColor(getResources().getColor(R.color.title));
tv_yuanchuang.setTextColor(getResources().getColor(R.color.title));
tv_gonglve.setTextColor(getResources().getColor(R.color.title));
diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
index c385732935..f0d8477578 100644
--- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
@@ -27,7 +27,6 @@ import com.gh.common.util.ConcernUtils;
import com.gh.common.util.DataUtils;
import com.gh.common.util.DialogUtils;
import com.gh.common.util.GameUtils;
-import com.gh.common.util.ImageUtils;
import com.gh.common.util.NewsUtils;
import com.gh.common.util.RandomUtils;
import com.gh.common.util.TokenUtils;
@@ -240,7 +239,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
}
private void initGameDetailTopViewHolder(GameDetailTopViewHolder viewHolder) {
- ImageUtils.getInstance(context).displayFile(gameEntity.getIcon(), viewHolder.gamedetail_iv_thumb);
+ viewHolder.gamedetail_iv_thumb.setImageURI(gameEntity.getIcon());
viewHolder.gamedetail_tv_name.setText(gameEntity.getName());
if (gameEntity.getApk() != null && gameEntity.getApk().size() != 0) {
for (int i = 0, size = gameEntity.getApk().size(); i < size; i++) {
diff --git a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java
index 6dcf2ce6e6..baeb2f2005 100644
--- a/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/personal/ConcernFragmentAdapter.java
@@ -16,7 +16,6 @@ import com.gh.common.util.DisplayUtils;
import com.gh.common.util.DownloadItemUtils;
import com.gh.common.util.GameUtils;
import com.gh.common.util.GameViewUtils;
-import com.gh.common.util.ImageUtils;
import com.gh.common.view.CardLinearLayout;
import com.gh.download.DownloadManager;
import com.gh.gamecenter.R;
@@ -213,7 +212,7 @@ public class ConcernFragmentAdapter extends RecyclerView.Adapter
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/concern_item.xml b/app/src/main/res/layout/concern_item.xml
index 56118ff6f6..4b773eef0a 100644
--- a/app/src/main/res/layout/concern_item.xml
+++ b/app/src/main/res/layout/concern_item.xml
@@ -8,11 +8,12 @@
android:gravity="center_horizontal"
android:orientation="vertical" >
-
+ android:layout_marginTop="10dp"
+ style="@style/frescoStyle"/>
-
+ fresco:actualImageScaleType="fitXY"
+ style="@style/frescoStyle"/>
-
+ android:layout_height="62dp"
+ style="@style/frescoStyle"/>
-
-
+
+ fresco:viewAspectRatio="3"
+ style="@style/frescoStyle"/>
-
+ android:layout_height="66dp"
+ style="@style/frescoStyle"/>
-
+ android:layout_marginLeft="8dp"
+ style="@style/frescoStyle"/>
-
+ android:layout_marginLeft="8dp"
+ style="@style/frescoStyle"/>
diff --git a/app/src/main/res/layout/fm_read_item.xml b/app/src/main/res/layout/fm_read_item.xml
index 7385597926..a53a17a0f2 100644
--- a/app/src/main/res/layout/fm_read_item.xml
+++ b/app/src/main/res/layout/fm_read_item.xml
@@ -13,10 +13,11 @@
app:right="8dp"
app:bottom="8dp">
-
+ android:layout_height="62dp"
+ style="@style/frescoStyle"/>
-
+ android:layout_height="62dp"
+ style="@style/frescoStyle"/>
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/game_download_item.xml b/app/src/main/res/layout/game_download_item.xml
index a476dfbee3..31e810bfbe 100644
--- a/app/src/main/res/layout/game_download_item.xml
+++ b/app/src/main/res/layout/game_download_item.xml
@@ -1,5 +1,6 @@
-
-
+ android:layout_marginLeft="5dp"
+ fresco:roundedCornerRadius="10dp"
+ style="@style/frescoStyle"/>
-
+ android:layout_marginLeft="5dp"
+ fresco:roundedCornerRadius="10dp"
+ style="@style/frescoStyle"/>
-
+ android:layout_marginRight="11dp"
+ style="@style/frescoStyle"/>
@@ -10,12 +11,12 @@
android:layout_marginTop="13dp"
android:gravity="center_vertical">
-
+ fresco:placeholderImage="@drawable/gamedetail_hint"/>
-
+ android:paddingRight="2dp"
+ style="@style/frescoStyle"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/gameupdate_item.xml b/app/src/main/res/layout/gameupdate_item.xml
index cdc16ad441..6ecbf7cd95 100644
--- a/app/src/main/res/layout/gameupdate_item.xml
+++ b/app/src/main/res/layout/gameupdate_item.xml
@@ -12,7 +12,7 @@
android:gravity="center_vertical"
android:orientation="horizontal" >
-
@@ -22,11 +23,12 @@
android:orientation="vertical"
android:gravity="center">
-
+ fresco:placeholderImage="@drawable/user_default_icon"
+ fresco:roundAsCircle="true"/>
-
+ android:scaleType="centerCrop"
+ fresco:viewAspectRatio="2.28"
+ fresco:placeholderImage="@drawable/preload"
+ fresco:fadeDuration="500"
+ fresco:pressedStateOverlayImage="@color/pressed_bg"
+ fresco:backgroundImage="@color/placeholder_bg" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/home_list_item_newsimage_type.xml b/app/src/main/res/layout/home_list_item_newsimage_type.xml
index c23a7c4f70..209f893ebe 100644
--- a/app/src/main/res/layout/home_list_item_newsimage_type.xml
+++ b/app/src/main/res/layout/home_list_item_newsimage_type.xml
@@ -9,10 +9,11 @@
app:left="8dp"
app:right="8dp">
-
+ android:layout_height="66dp"
+ style="@style/frescoStyle"/>
-
+ fresco:actualImageScaleType="centerCrop"
+ style="@style/frescoStyle"/>
#fda34d
#2ec991
+
+ #ececec
+
+ #30000000
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index ecb2eb6c42..b93800c5f6 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -89,4 +89,12 @@
- @drawable/checkbox_style
+
+
+
\ No newline at end of file