version:2.7
fix: update:视频圆角
This commit is contained in:
@@ -16,8 +16,8 @@ android {
|
|||||||
applicationId "com.uiui.aios"
|
applicationId "com.uiui.aios"
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 18
|
versionCode 19
|
||||||
versionName "2.7"
|
versionName "2.8"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
@@ -158,6 +158,9 @@ dependencies {
|
|||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||||
|
|
||||||
|
implementation "androidx.room:room-runtime:2.4.3"
|
||||||
|
annotationProcessor "androidx.room:room-compiler:2.4.3"
|
||||||
|
|
||||||
//磁盘缓存
|
//磁盘缓存
|
||||||
implementation 'com.jakewharton:disklrucache:2.0.2'
|
implementation 'com.jakewharton:disklrucache:2.0.2'
|
||||||
//glide
|
//glide
|
||||||
|
|||||||
@@ -15,12 +15,15 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import com.blankj.utilcode.util.FileUtils;
|
import com.blankj.utilcode.util.FileUtils;
|
||||||
import com.bumptech.glide.Glide;
|
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.R;
|
||||||
import com.uiui.aios.bean.AlarmClockData;
|
import com.uiui.aios.bean.AlarmClockData;
|
||||||
import com.uiui.aios.bean.BaseResponse;
|
import com.uiui.aios.bean.BaseResponse;
|
||||||
import com.uiui.aios.network.NetInterfaceManager;
|
import com.uiui.aios.network.NetInterfaceManager;
|
||||||
import com.uiui.aios.utils.AlarmUtils;
|
import com.uiui.aios.utils.AlarmUtils;
|
||||||
import com.uiui.aios.utils.FileUtil;
|
import com.uiui.aios.utils.FileUtil;
|
||||||
|
import com.uiui.aios.utils.ScreenUtils;
|
||||||
import com.uiui.aios.utils.Utils;
|
import com.uiui.aios.utils.Utils;
|
||||||
import com.uiui.aios.view.JzvdStdAssert;
|
import com.uiui.aios.view.JzvdStdAssert;
|
||||||
|
|
||||||
@@ -160,7 +163,8 @@ public class NoticeActivity extends AppCompatActivity {
|
|||||||
if (FileUtil.isPictureFile(fileType)) {
|
if (FileUtil.isPictureFile(fileType)) {
|
||||||
jz_video.setVisibility(View.GONE);
|
jz_video.setVisibility(View.GONE);
|
||||||
imageView.setVisibility(View.VISIBLE);
|
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)) {
|
} else if (FileUtil.isVideoFile(fileType)) {
|
||||||
jz_video.setVisibility(View.VISIBLE);
|
jz_video.setVisibility(View.VISIBLE);
|
||||||
imageView.setVisibility(View.GONE);
|
imageView.setVisibility(View.GONE);
|
||||||
|
|||||||
@@ -20,9 +20,13 @@ import androidx.fragment.app.FragmentActivity;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
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.R;
|
||||||
import com.uiui.aios.bean.AlarmClockData;
|
import com.uiui.aios.bean.AlarmClockData;
|
||||||
import com.uiui.aios.utils.FFmpegUtils;
|
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 com.uiui.aios.view.MyJzvdStdNoTitleNoClarity;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -145,7 +149,8 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.holder> {
|
|||||||
holder.imageView.setVisibility(View.VISIBLE);
|
holder.imageView.setVisibility(View.VISIBLE);
|
||||||
holder.jz_video.setVisibility(View.GONE);
|
holder.jz_video.setVisibility(View.GONE);
|
||||||
if (!mContext.isDestroyed()) {
|
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 {
|
} else {
|
||||||
holder.imageView.setVisibility(View.GONE);
|
holder.imageView.setVisibility(View.GONE);
|
||||||
@@ -161,7 +166,8 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.holder> {
|
|||||||
@Override
|
@Override
|
||||||
public void onNext(@io.reactivex.rxjava3.annotations.NonNull Bitmap bitmap) {
|
public void onNext(@io.reactivex.rxjava3.annotations.NonNull Bitmap bitmap) {
|
||||||
if (!mContext.isDestroyed()) {
|
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));
|
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 {
|
class holder extends RecyclerView.ViewHolder {
|
||||||
TextView tv_time, tv_remind_type, tv_title, tv_voice;
|
TextView tv_time, tv_remind_type, tv_title, tv_voice;
|
||||||
ConstraintLayout cl_voice, cl_vp;
|
ConstraintLayout cl_voice, cl_vp;
|
||||||
MyJzvdStdNoTitleNoClarity jz_video;
|
JzvdStdRound jz_video;
|
||||||
ImageView imageView;
|
ImageView imageView;
|
||||||
Switch switch1;
|
Switch switch1;
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ import java.lang.reflect.Type;
|
|||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|||||||
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -120,8 +120,9 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<com.uiui.aios.view.MyJzvdStdNoTitleNoClarity
|
<com.uiui.aios.view.JzvdStdRound
|
||||||
android:id="@+id/jz_video"
|
android:id="@+id/jz_video"
|
||||||
|
app:radius="16dp"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
|||||||
@@ -7,4 +7,13 @@
|
|||||||
<attr name="itemMargin" format="integer" />
|
<attr name="itemMargin" format="integer" />
|
||||||
</declare-styleable>
|
</declare-styleable>
|
||||||
|
|
||||||
|
<!-- JzvdStdRound -->
|
||||||
|
<declare-styleable name="JzvdStdRound">
|
||||||
|
<attr name="radius" format="dimension" />
|
||||||
|
<attr name="left_top_radius" format="dimension" />
|
||||||
|
<attr name="right_top_radius" format="dimension" />
|
||||||
|
<attr name="right_bottom_radius" format="dimension" />
|
||||||
|
<attr name="left_bottom_radius" format="dimension" />
|
||||||
|
</declare-styleable>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user