version:2.7

fix:
update:视频圆角
This commit is contained in:
2022-09-01 09:31:37 +08:00
parent 61fb4663a6
commit e5b3385346
7 changed files with 122 additions and 9 deletions

View File

@@ -15,12 +15,15 @@ import android.widget.TextView;
import com.blankj.utilcode.util.FileUtils;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.uiui.aios.R;
import com.uiui.aios.bean.AlarmClockData;
import com.uiui.aios.bean.BaseResponse;
import com.uiui.aios.network.NetInterfaceManager;
import com.uiui.aios.utils.AlarmUtils;
import com.uiui.aios.utils.FileUtil;
import com.uiui.aios.utils.ScreenUtils;
import com.uiui.aios.utils.Utils;
import com.uiui.aios.view.JzvdStdAssert;
@@ -160,7 +163,8 @@ public class NoticeActivity extends AppCompatActivity {
if (FileUtil.isPictureFile(fileType)) {
jz_video.setVisibility(View.GONE);
imageView.setVisibility(View.VISIBLE);
Glide.with(NoticeActivity.this).load(filePath).into(imageView);
RequestOptions options = new RequestOptions().transform(new RoundedCorners(ScreenUtils.dip2px(this, 16F)));
Glide.with(NoticeActivity.this).load(filePath).apply(options).into(imageView);
} else if (FileUtil.isVideoFile(fileType)) {
jz_video.setVisibility(View.VISIBLE);
imageView.setVisibility(View.GONE);

View File

@@ -20,9 +20,13 @@ import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.request.RequestOptions;
import com.uiui.aios.R;
import com.uiui.aios.bean.AlarmClockData;
import com.uiui.aios.utils.FFmpegUtils;
import com.uiui.aios.utils.ScreenUtils;
import com.uiui.aios.view.JzvdStdRound;
import com.uiui.aios.view.MyJzvdStdNoTitleNoClarity;
import java.io.IOException;
@@ -145,7 +149,8 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.holder> {
holder.imageView.setVisibility(View.VISIBLE);
holder.jz_video.setVisibility(View.GONE);
if (!mContext.isDestroyed()) {
Glide.with(mContext).load(url).into(holder.imageView);
RequestOptions options = new RequestOptions().transform(new RoundedCorners(ScreenUtils.dip2px(mContext, 16F)));
Glide.with(mContext).load(url).apply(options).into(holder.imageView);
}
} else {
holder.imageView.setVisibility(View.GONE);
@@ -161,7 +166,8 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.holder> {
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull Bitmap bitmap) {
if (!mContext.isDestroyed()) {
Glide.with(mContext).load(bitmap).into(holder.jz_video.posterImageView);
RequestOptions options = new RequestOptions().transform(new RoundedCorners(ScreenUtils.dip2px(mContext, 16F)));
Glide.with(mContext).load(bitmap).apply(options).into(holder.jz_video.posterImageView);
}
holder.jz_video.startButton.setImageDrawable(mContext.getDrawable(R.drawable.play));
}
@@ -200,7 +206,7 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.holder> {
class holder extends RecyclerView.ViewHolder {
TextView tv_time, tv_remind_type, tv_title, tv_voice;
ConstraintLayout cl_voice, cl_vp;
MyJzvdStdNoTitleNoClarity jz_video;
JzvdStdRound jz_video;
ImageView imageView;
Switch switch1;

View File

@@ -21,8 +21,6 @@ import java.lang.reflect.Type;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

View 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);
}
}