news模块修改(未完成)

This commit is contained in:
huangzhuanghua
2016-11-09 19:09:30 +08:00
parent d711a9a14c
commit c753663079
40 changed files with 1044 additions and 994 deletions

View File

@ -1,35 +1,30 @@
package com.gh.common.util;
import android.content.Context;
import android.graphics.Color;
import android.content.res.Resources;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.view.ViewGroup;
import com.facebook.common.executors.CallerThreadExecutor;
import com.facebook.common.references.CloseableReference;
import com.facebook.datasource.DataSource;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.BaseControllerListener;
import com.facebook.drawee.controller.ControllerListener;
import com.facebook.drawee.drawable.ScalingUtils;
import com.facebook.drawee.generic.GenericDraweeHierarchy;
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
import com.facebook.imagepipeline.core.ImagePipeline;
import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber;
import com.facebook.imagepipeline.image.CloseableImage;
import com.facebook.imagepipeline.image.ImageInfo;
import com.facebook.imagepipeline.request.ImageRequest;
import com.facebook.imagepipeline.request.ImageRequestBuilder;
import com.gh.gamecenter.R;
public class ImageUtils {
private static ImageUtils singleton;
public static ImageUtils getInstance(Context context) {
public static ImageUtils getInstance() {
if (singleton == null) {
synchronized (ImageUtils.class) {
if (singleton == null) {
@ -41,121 +36,70 @@ public class ImageUtils {
return singleton;
}
// 自适应图片宽高
public void display (String url , final SimpleDraweeView simpleDraweeView, final Context context, final int paddingSize){
ControllerListener listener = new BaseControllerListener(){
public void display(final SimpleDraweeView simpleDraweeView, String url, final int width) {
ControllerListener<ImageInfo> listener = new BaseControllerListener<ImageInfo>(){
@Override
public void onFinalImageSet(String id, Object imageInfo, Animatable animatable) {
super.onFinalImageSet(id, imageInfo, animatable);
public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable 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;
float scale = (float) imageInfo.getHeight() / (float) imageInfo.getWidth();
layoutParams.height = (int)(width * scale);
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()
simpleDraweeView.setController(Fresco.newDraweeControllerBuilder()
.setUri(url)
.setControllerListener(listener)
.build();
simpleDraweeView.setController(controller);
.build());
}
//设置缩放类型,设置按压状态下的叠加图
public void display (String url , SimpleDraweeView simpleDraweeView, ScalingUtils.ScaleType scaleType, Context context){
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(context.getResources());
GenericDraweeHierarchy hierarchy = builder
// 设置缩放类型设置按压状态下的叠加图
public void display(Resources resources, SimpleDraweeView simpleDraweeView,
ScalingUtils.ScaleType scaleType, String url) {
simpleDraweeView.setHierarchy(new GenericDraweeHierarchyBuilder(resources)
.setFadeDuration(500)
.setPressedStateOverlay(new ColorDrawable(context.getResources().getColor(R.color.pressed_bg)))
.setPressedStateOverlay(new ColorDrawable(resources.getColor(R.color.pressed_bg)))
.setPlaceholderImage(R.drawable.ocupy2, ScalingUtils.ScaleType.CENTER)
.setBackground(new ColorDrawable(Color.parseColor("#ececec")))
.setBackground(new ColorDrawable(resources.getColor(R.color.placeholder_bg)))
.setActualImageScaleType(scaleType)
.build();
simpleDraweeView.setHierarchy(hierarchy);
.build());
simpleDraweeView.setImageURI(url);
}
//设置占位符
public void display (String url , SimpleDraweeView simpleDraweeView, int placeholderImage, Context context){
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(context.getResources());
GenericDraweeHierarchy hierarchy = builder
// 设置占位符
public void display(Resources resources, SimpleDraweeView simpleDraweeView, String url, int placeholderImage) {
simpleDraweeView.setHierarchy(new GenericDraweeHierarchyBuilder(resources)
.setFadeDuration(500)
.setPressedStateOverlay(new ColorDrawable(context.getResources().getColor(R.color.pressed_bg)))
.setBackground(new ColorDrawable(Color.parseColor("#ececec")))
.setPressedStateOverlay(new ColorDrawable(resources.getColor(R.color.pressed_bg)))
.setBackground(new ColorDrawable(resources.getColor(R.color.placeholder_bg)))
.setPlaceholderImage(placeholderImage)
.build();
simpleDraweeView.setHierarchy(hierarchy);
.build());
simpleDraweeView.setImageURI(url);
}
//图片下载监听和设置低高分辨率图片
public void display (String url, String lowUrl, SimpleDraweeView simpleDraweeView, ControllerListener listener){
DraweeController controller = Fresco.newDraweeControllerBuilder()
// 图片下载监听和设置低高分辨率图片
public void display(SimpleDraweeView simpleDraweeView, String url, String lowUrl,
ControllerListener<? super ImageInfo> listener) {
simpleDraweeView.setController(Fresco.newDraweeControllerBuilder()
.setImageRequest(ImageRequest.fromUri(url))
.setControllerListener(listener)
.setLowResImageRequest(ImageRequest.fromUri(lowUrl)) //低分辨率图片
.build();
simpleDraweeView.setController(controller);
.setLowResImageRequest(ImageRequest.fromUri(lowUrl)) // 低分辨率图片
.build());
}
public void display (String url, SimpleDraweeView simpleDraweeView, ControllerListener listener){
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(ImageRequest.fromUri(url))
.setControllerListener(listener)
.build();
simpleDraweeView.setController(controller);
}
//获取bitmap
public void display (String url, BaseBitmapDataSubscriber dataSubscriber, Context context){
// 获取bitmap
public void display(Context context, String url, BaseBitmapDataSubscriber dataSubscriber) {
ImageRequest imageRequest = ImageRequestBuilder
.newBuilderWithSource(Uri.parse(url))
.setProgressiveRenderingEnabled(true)
.build();
ImagePipeline imagePipeline = Fresco.getImagePipeline();
DataSource<CloseableReference<CloseableImage>>
dataSource = imagePipeline.fetchDecodedImage(imageRequest, context);
dataSource.subscribe(dataSubscriber, CallerThreadExecutor.getInstance());
Fresco.getImagePipeline()
.fetchDecodedImage(imageRequest, context)
.subscribe(dataSubscriber, CallerThreadExecutor.getInstance());
}
}