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