Skip to content

Commit

Permalink
商品详情页面功能完成
Browse files Browse the repository at this point in the history
  • Loading branch information
GraceJoJo committed Jan 16, 2019
1 parent 965314c commit 7c41a19
Show file tree
Hide file tree
Showing 83 changed files with 3,511 additions and 54 deletions.
7 changes: 5 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,11 @@ dependencies {
kapt 'com.google.dagger:dagger-compiler:2.11'
implementation project(":common-base")
implementation project(":common-ui")
// implementation project(":module-core")
// implementation project(":module-mall")
if (!Boolean.valueOf(rootProject.ext.isBuildModule)) {
implementation project(":module-core")
implementation project(":module-mall")
}

}
repositories {
mavenCentral()
Expand Down
3 changes: 2 additions & 1 deletion common-base/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ dependencies {
api rootProject.ext.dependencies["test-runner"]
api rootProject.ext.dependencies["espresso-core"]
implementation project(":common-ui")

//布局适配
api rootProject.ext.dependencies["autolayout"]
//net request
api rootProject.ext.dependencies["retrofit"]
api rootProject.ext.dependencies["retrofit-converter-gson"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class ARouterConfig {
const val ACT_DESIGNERLIST = "/designer/act_designerlist"
const val ACT_SEARCH = "/mall/act_search"
const val ACT_GoodsFilter= "/mall/act_goodsfilter"
const val ACT_GoodsDetail= "/mall/act_goodsdetail"
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ interface ARouterConstants {
val TAG_ID = "tag_id"
val TAG_NAME: String = "tag_name"
val SEARCH_KEYWORDS: String = "search_keywords"
val PRODUCT_ID: String = "product_id"
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,10 @@ object RetrofitManager {
override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()
val url = request.url().newBuilder()
.addQueryParameter("key", "ecce8a3ef508f54cc1905af133f5b3a5")
.addQueryParameter("t", "1543210514862")
// .addQueryParameter("key", "ecce8a3ef508f54cc1905af133f5b3a5")
// .addQueryParameter("t", "1543210514862")
.addQueryParameter("key", "21ec3bb026f41191f371ace01c2b1b1e")
.addQueryParameter("t", "1547618501190")
.build()
return chain.proceed(request.newBuilder().url(url).build())
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.jojo.design.common_base.utils
package com.jojo.design.common_base.utils.glide

import android.widget.ImageView
import com.bumptech.glide.Glide
import com.bumptech.glide.Priority
import com.bumptech.glide.load.resource.bitmap.CenterCrop
import com.bumptech.glide.load.resource.bitmap.CircleCrop
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
import com.bumptech.glide.request.RequestOptions
import com.jojo.design.common_base.BaseAppliction
import com.jojo.design.common_base.net.API
import com.jojo.design.common_base.R
import com.jojo.design.common_base.utils.glide.transform.CornerOriginSizeTransform

/**
* author : JOJO
Expand All @@ -17,6 +17,25 @@ import com.jojo.design.common_base.net.API
* desc :
*/
object GlideUtils {
/**
* 公共的加载网络图,直接加载图片地址
*
* @param imageUrl 图片地址
* @param defaultImg 加载异常图
* @param targetView 目标ImageView
*/
fun loadNormalImage(imageUrl: String, targetView: ImageView, defaultImg: Int) {
val requestOptions = RequestOptions()
.placeholder(defaultImg)
.error(defaultImg)
.priority(Priority.HIGH)
Glide.with(BaseAppliction.context)
.load(imageUrl)
.apply(requestOptions)
.transition(DrawableTransitionOptions().crossFade())
.into(targetView)
}

/**
* 公共的加载网络图片的配置
*
Expand All @@ -37,6 +56,27 @@ object GlideUtils {
.into(targetView)
}

/**
* 按照图片原尺寸显示图片,用于当图片尺寸大小不一致,但是要求图片显示正常且全的情况
*
* @param imageUrl 图片地址
* @param defaultImg 加载异常图
* @param targetView 目标ImageView
*/
fun loadOriginalSizeImage(imageUrl: String, targetView: ImageView, defaultImg: Int) {
val transformation = CornerOriginSizeTransform(BaseAppliction.context, 10f)
//上方显示圆角,下发显示直角
transformation.setExceptCorner(false, false, true, true)
val requestOptions = RequestOptions()
.error(defaultImg)
.priority(Priority.HIGH)
.transform(transformation)//滑动过程中,会有加载过程的动画,去除这个transformation,就不会有,或者去除transition(new DrawableTransitionOptions().crossFade())也可以
Glide.with(BaseAppliction.context)
.load(imageUrl)
.apply(requestOptions)
.into(targetView)
}

/**
* 圆形图片
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
package com.jojo.design.common_base.utils.glide.transform;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.Transformation;
import com.bumptech.glide.load.engine.Resource;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapResource;

import java.security.MessageDigest;

/**
* Created by JoJo on 2018/12/25.
* wechat:18510829974
* description:让Glide输出指定位置的圆角图片-(显示图片的原始尺寸)
*/

public class CornerOriginSizeTransform implements Transformation<Bitmap> {
private BitmapPool mBitmapPool;

private float radius;

private boolean exceptLeftTop, exceptRightTop, exceptLeftBottom, exceptRightBotoom;

/**
* 除了那几个角不需要圆角的
*
* @param leftTop
* @param rightTop
* @param leftBottom
* @param rightBottom
*/
public void setExceptCorner(boolean leftTop, boolean rightTop, boolean leftBottom, boolean rightBottom) {
this.exceptLeftTop = leftTop;
this.exceptRightTop = rightTop;
this.exceptLeftBottom = leftBottom;
this.exceptRightBotoom = rightBottom;
}

public CornerOriginSizeTransform(Context context, float radius) {
this.mBitmapPool = Glide.get(context).getBitmapPool();
this.radius = radius;
}

@Override
public Resource<Bitmap> transform(Context context, Resource<Bitmap> resource, int outWidth, int outHeight) {
Bitmap source = resource.get();
//图片的原始尺寸
// Elog.e("TAG", "source=" + source.getHeight() + "width=" + source.getWidth());
int finalWidth = source.getWidth(), finalHeight = source.getHeight();
float ratio; //输出目标的宽高或高宽比例

//修正圆角
this.radius *= (float) finalHeight / (float) outHeight;
Bitmap outBitmap = this.mBitmapPool.get(finalWidth, finalHeight, Bitmap.Config.ARGB_8888);
if (outBitmap == null) {
outBitmap = Bitmap.createBitmap(finalWidth, finalHeight, Bitmap.Config.ARGB_8888);
}

Canvas canvas = new Canvas(outBitmap);
Paint paint = new Paint();
//关联画笔绘制的原图bitmap
BitmapShader shader = new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
//计算中心位置,进行偏移
int width = (source.getWidth() - finalWidth) / 2;
int height = (source.getHeight() - finalHeight) / 2;
if (width != 0 || height != 0) {
Matrix matrix = new Matrix();
matrix.setTranslate((float) (-width), (float) (-height));
shader.setLocalMatrix(matrix);
}

paint.setShader(shader);
paint.setAntiAlias(true);
RectF rectF = new RectF(0.0F, 0.0F, (float) canvas.getWidth(), (float) canvas.getHeight());
canvas.drawRoundRect(rectF, this.radius, this.radius, paint); //先绘制圆角矩形

if (exceptLeftTop) { //左上角不为圆角
canvas.drawRect(0, 0, radius, radius, paint);
}
if (exceptRightTop) {//右上角不为圆角
canvas.drawRect(canvas.getWidth() - radius, 0, radius, radius, paint);
}

if (exceptLeftBottom) {//左下角不为圆角
canvas.drawRect(0, canvas.getHeight() - radius, radius, canvas.getHeight(), paint);
}

if (exceptRightBotoom) {//右下角不为圆角
canvas.drawRect(canvas.getWidth() - radius, canvas.getHeight() - radius, canvas.getWidth(), canvas.getHeight(), paint);
}

return BitmapResource.obtain(outBitmap, this.mBitmapPool);
}

@Override
public void updateDiskCacheKey(MessageDigest messageDigest) {

}
}

1 change: 1 addition & 0 deletions common-ui/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ dependencies {
api rootProject.ext.dependencies["Smarttablayout-utils"]
//Recyclerview
api rootProject.ext.dependencies["recyclerview-v7"]
api rootProject.ext.dependencies["banner"]
}
repositories {
mavenCentral()
Expand Down
Loading

0 comments on commit 7c41a19

Please sign in to comment.