ADD week 5
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
package androidx.constraintlayout.utils.widget;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import androidx.constraintlayout.widget.R;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class MockView extends View {
|
||||
private int mDiagonalsColor;
|
||||
private boolean mDrawDiagonals;
|
||||
private boolean mDrawLabel;
|
||||
private int mMargin;
|
||||
private Paint mPaintDiagonals;
|
||||
private Paint mPaintText;
|
||||
private Paint mPaintTextBackground;
|
||||
protected String mText;
|
||||
private int mTextBackgroundColor;
|
||||
private Rect mTextBounds;
|
||||
private int mTextColor;
|
||||
|
||||
public MockView(Context context) {
|
||||
super(context);
|
||||
this.mPaintDiagonals = new Paint();
|
||||
this.mPaintText = new Paint();
|
||||
this.mPaintTextBackground = new Paint();
|
||||
this.mDrawDiagonals = true;
|
||||
this.mDrawLabel = true;
|
||||
this.mText = null;
|
||||
this.mTextBounds = new Rect();
|
||||
this.mDiagonalsColor = Color.argb(255, 0, 0, 0);
|
||||
this.mTextColor = Color.argb(255, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION);
|
||||
this.mTextBackgroundColor = Color.argb(255, 50, 50, 50);
|
||||
this.mMargin = 4;
|
||||
init(context, null);
|
||||
}
|
||||
|
||||
public MockView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
this.mPaintDiagonals = new Paint();
|
||||
this.mPaintText = new Paint();
|
||||
this.mPaintTextBackground = new Paint();
|
||||
this.mDrawDiagonals = true;
|
||||
this.mDrawLabel = true;
|
||||
this.mText = null;
|
||||
this.mTextBounds = new Rect();
|
||||
this.mDiagonalsColor = Color.argb(255, 0, 0, 0);
|
||||
this.mTextColor = Color.argb(255, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION);
|
||||
this.mTextBackgroundColor = Color.argb(255, 50, 50, 50);
|
||||
this.mMargin = 4;
|
||||
init(context, attrs);
|
||||
}
|
||||
|
||||
public MockView(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
this.mPaintDiagonals = new Paint();
|
||||
this.mPaintText = new Paint();
|
||||
this.mPaintTextBackground = new Paint();
|
||||
this.mDrawDiagonals = true;
|
||||
this.mDrawLabel = true;
|
||||
this.mText = null;
|
||||
this.mTextBounds = new Rect();
|
||||
this.mDiagonalsColor = Color.argb(255, 0, 0, 0);
|
||||
this.mTextColor = Color.argb(255, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION, ItemTouchHelper.Callback.DEFAULT_DRAG_ANIMATION_DURATION);
|
||||
this.mTextBackgroundColor = Color.argb(255, 50, 50, 50);
|
||||
this.mMargin = 4;
|
||||
init(context, attrs);
|
||||
}
|
||||
|
||||
private void init(Context context, AttributeSet attrs) {
|
||||
if (attrs != null) {
|
||||
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attrs, R.styleable.MockView);
|
||||
int indexCount = obtainStyledAttributes.getIndexCount();
|
||||
for (int i = 0; i < indexCount; i++) {
|
||||
int index = obtainStyledAttributes.getIndex(i);
|
||||
if (index == R.styleable.MockView_mock_label) {
|
||||
this.mText = obtainStyledAttributes.getString(index);
|
||||
} else if (index == R.styleable.MockView_mock_showDiagonals) {
|
||||
this.mDrawDiagonals = obtainStyledAttributes.getBoolean(index, this.mDrawDiagonals);
|
||||
} else if (index == R.styleable.MockView_mock_diagonalsColor) {
|
||||
this.mDiagonalsColor = obtainStyledAttributes.getColor(index, this.mDiagonalsColor);
|
||||
} else if (index == R.styleable.MockView_mock_labelBackgroundColor) {
|
||||
this.mTextBackgroundColor = obtainStyledAttributes.getColor(index, this.mTextBackgroundColor);
|
||||
} else if (index == R.styleable.MockView_mock_labelColor) {
|
||||
this.mTextColor = obtainStyledAttributes.getColor(index, this.mTextColor);
|
||||
} else if (index == R.styleable.MockView_mock_showLabel) {
|
||||
this.mDrawLabel = obtainStyledAttributes.getBoolean(index, this.mDrawLabel);
|
||||
}
|
||||
}
|
||||
obtainStyledAttributes.recycle();
|
||||
}
|
||||
if (this.mText == null) {
|
||||
try {
|
||||
this.mText = context.getResources().getResourceEntryName(getId());
|
||||
} catch (Exception unused) {
|
||||
}
|
||||
}
|
||||
this.mPaintDiagonals.setColor(this.mDiagonalsColor);
|
||||
this.mPaintDiagonals.setAntiAlias(true);
|
||||
this.mPaintText.setColor(this.mTextColor);
|
||||
this.mPaintText.setAntiAlias(true);
|
||||
this.mPaintTextBackground.setColor(this.mTextBackgroundColor);
|
||||
this.mMargin = Math.round(this.mMargin * (getResources().getDisplayMetrics().xdpi / 160.0f));
|
||||
}
|
||||
|
||||
@Override // android.view.View
|
||||
public void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
int width = getWidth();
|
||||
int height = getHeight();
|
||||
if (this.mDrawDiagonals) {
|
||||
width--;
|
||||
height--;
|
||||
float f = width;
|
||||
float f2 = height;
|
||||
canvas.drawLine(0.0f, 0.0f, f, f2, this.mPaintDiagonals);
|
||||
canvas.drawLine(0.0f, f2, f, 0.0f, this.mPaintDiagonals);
|
||||
canvas.drawLine(0.0f, 0.0f, f, 0.0f, this.mPaintDiagonals);
|
||||
canvas.drawLine(f, 0.0f, f, f2, this.mPaintDiagonals);
|
||||
canvas.drawLine(f, f2, 0.0f, f2, this.mPaintDiagonals);
|
||||
canvas.drawLine(0.0f, f2, 0.0f, 0.0f, this.mPaintDiagonals);
|
||||
}
|
||||
String str = this.mText;
|
||||
if (str == null || !this.mDrawLabel) {
|
||||
return;
|
||||
}
|
||||
this.mPaintText.getTextBounds(str, 0, str.length(), this.mTextBounds);
|
||||
float width2 = (width - this.mTextBounds.width()) / 2.0f;
|
||||
float height2 = ((height - this.mTextBounds.height()) / 2.0f) + this.mTextBounds.height();
|
||||
this.mTextBounds.offset((int) width2, (int) height2);
|
||||
Rect rect = this.mTextBounds;
|
||||
rect.set(rect.left - this.mMargin, this.mTextBounds.top - this.mMargin, this.mTextBounds.right + this.mMargin, this.mTextBounds.bottom + this.mMargin);
|
||||
canvas.drawRect(this.mTextBounds, this.mPaintTextBackground);
|
||||
canvas.drawText(this.mText, width2, height2, this.mPaintText);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user