|
|
@@ -4,6 +4,7 @@ import android.graphics.Bitmap;
|
|
|
import android.support.annotation.CallSuper;
|
|
|
import android.support.annotation.Nullable;
|
|
|
import android.support.constraint.ConstraintLayout;
|
|
|
+import android.support.constraint.ConstraintSet;
|
|
|
import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
@@ -110,32 +111,37 @@ public class ContentsCardHolder extends ContentsHolder<ContentsItemBean> {
|
|
|
if (null != rectList) {
|
|
|
int len = rectList.size();
|
|
|
if (len > 0) {
|
|
|
- ViewGroup parent = (ViewGroup) imageViewCardListicleCover.getParent();
|
|
|
+ ConstraintLayout parent = (ConstraintLayout) imageViewCardListicleCover.getParent();
|
|
|
|
|
|
for (int i = 0; i < len; ++i) {
|
|
|
ItemRectBean rectBean = rectList.get(i);
|
|
|
ImageView imageView = new ImageView(itemView.getContext());
|
|
|
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
|
|
|
imageView.setImageResource(R.drawable.rectangle_trasparent);
|
|
|
+ imageView.setId(View.generateViewId());
|
|
|
|
|
|
ViewGroup.MarginLayoutParams margins = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
|
|
parent.addView(imageView, margins);
|
|
|
imageView.post(() -> {
|
|
|
int width = imageView.getWidth();
|
|
|
int height = imageView.getHeight();
|
|
|
-
|
|
|
- ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) imageView.getLayoutParams();
|
|
|
float x = rectBean.getPercentTopLeftX() * width / 100;
|
|
|
float y = rectBean.getPercentTopLeftY() * height / 100;
|
|
|
|
|
|
- Log.i("APP# ContentsCardHolder | bindInternal", "|" + "x: " + x + ", y: " + y);
|
|
|
-
|
|
|
- params.setMargins((int)x, (int)y, 0, 0);
|
|
|
+ ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) imageView.getLayoutParams();
|
|
|
params.width = (width * (rectBean.getPercentBottomRightX() - rectBean.getPercentTopLeftX())) / 100;
|
|
|
params.height = (height * (rectBean.getPercentBottomRightY() - rectBean.getPercentTopLeftY())) / 100;
|
|
|
-// imageView.setLayoutParams(params);
|
|
|
- imageView.setTranslationX(x);
|
|
|
- imageView.setTranslationY(y);
|
|
|
+
|
|
|
+ ConstraintSet constraintSet = new ConstraintSet();
|
|
|
+ constraintSet.clone(parent);
|
|
|
+
|
|
|
+ constraintSet.connect(imageView.getId(), ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, (int)x);
|
|
|
+ constraintSet.setMargin(imageView.getId(), ConstraintSet.START, (int)x);
|
|
|
+ constraintSet.connect(imageView.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, (int)y);
|
|
|
+ constraintSet.setMargin(imageView.getId(), ConstraintSet.TOP, (int)y);
|
|
|
+
|
|
|
+ imageView.setLayoutParams(params);
|
|
|
+ constraintSet.applyTo(parent);
|
|
|
});
|
|
|
|
|
|
imageView.setOnClickListener(v -> {
|
|
|
@@ -143,6 +149,8 @@ public class ContentsCardHolder extends ContentsHolder<ContentsItemBean> {
|
|
|
});
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ parent.invalidate();
|
|
|
}
|
|
|
}
|
|
|
}
|