version:2.7
fix: update:视频圆角
This commit is contained in:
92
app/src/main/java/com/uiui/aios/view/JzvdStdRound.java
Normal file
92
app/src/main/java/com/uiui/aios/view/JzvdStdRound.java
Normal file
@@ -0,0 +1,92 @@
|
||||
package com.uiui.aios.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.PaintFlagsDrawFilter;
|
||||
import android.graphics.Path;
|
||||
import android.graphics.RectF;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.uiui.aios.R;
|
||||
|
||||
import cn.jzvd.JzvdStd;
|
||||
|
||||
public class JzvdStdRound extends JzvdStd {
|
||||
|
||||
private int radius;
|
||||
private int leftTopRadius;
|
||||
private int rightTopRadius;
|
||||
private int rightBottomRadius;
|
||||
private int leftBottomRadius;
|
||||
|
||||
public JzvdStdRound(Context context) {
|
||||
super(context);
|
||||
}
|
||||
public JzvdStdRound(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
initAttrs(context, attrs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLayoutId() {
|
||||
return R.layout.layout_jzstd_notitle;
|
||||
}
|
||||
|
||||
void initAttrs(Context context, AttributeSet attrs) {
|
||||
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.JzvdStdRound);
|
||||
radius = a.getDimensionPixelSize(R.styleable.JzvdStdRound_radius, 0);
|
||||
leftTopRadius = a.getDimensionPixelSize(R.styleable.JzvdStdRound_left_top_radius, 0);
|
||||
rightTopRadius = a.getDimensionPixelSize(R.styleable.JzvdStdRound_right_top_radius, 0);
|
||||
rightBottomRadius = a.getDimensionPixelSize(R.styleable.JzvdStdRound_right_bottom_radius, 0);
|
||||
leftBottomRadius = a.getDimensionPixelSize(R.styleable.JzvdStdRound_left_bottom_radius, 0);
|
||||
}
|
||||
|
||||
|
||||
public void setRadius(int radius){
|
||||
this.radius = radius;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
public void setLeftTopRadius(int leftTopRadius) {
|
||||
this.leftTopRadius = leftTopRadius;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
|
||||
public void setRightTopRadius(int rightTopRadius) {
|
||||
this.rightTopRadius = rightTopRadius;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
|
||||
public void setRightBottomRadius(int rightBottomRadius) {
|
||||
this.rightBottomRadius = rightBottomRadius;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
public void setLeftBottomRadius(int leftBottomRadius) {
|
||||
this.leftBottomRadius = leftBottomRadius;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatchDraw(Canvas canvas) {
|
||||
Path path = new Path();
|
||||
if (radius > 0) {
|
||||
path.addRoundRect(new RectF(0, 0, getMeasuredWidth(), getMeasuredHeight()),
|
||||
radius, radius, Path.Direction.CW);
|
||||
} else {
|
||||
path.addRoundRect(new RectF(0, 0, getMeasuredWidth(), getMeasuredHeight()),
|
||||
new float[]{leftTopRadius, leftTopRadius, rightTopRadius, rightTopRadius,
|
||||
rightBottomRadius, rightBottomRadius, leftBottomRadius, leftBottomRadius},
|
||||
Path.Direction.CW);
|
||||
canvas.setDrawFilter(new PaintFlagsDrawFilter(0,
|
||||
Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG));
|
||||
}
|
||||
canvas.clipPath(path);
|
||||
super.dispatchDraw(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user