修复BUG,更新UI

This commit is contained in:
muqing 2024-02-17 17:31:37 +08:00
parent 4f113c934c
commit 7b79ef3e5e
44 changed files with 743 additions and 415 deletions

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<value>
<entry key="app">
<State />
</entry>
</value>
</component>
</project>

View File

@ -4,8 +4,9 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="gradleJvm" value="jbr-17" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />

View File

@ -11,7 +11,7 @@ android {
}
}
namespace 'com.muqingbfq'
compileSdk 34
compileSdk 33
defaultConfig {
applicationId "com.muqingbfq"
minSdk 23
@ -52,7 +52,9 @@ dependencies {
implementation 'com.google.code.gson:gson:2.9.1'
implementation 'com.squareup.okhttp3:okhttp:4.11.0'
//
implementation 'com.github.bumptech.glide:glide:4.16.0'
implementation "androidx.palette:palette:1.0.0"
//
// implementation 'com.github.wangchenyan:lrcview:2.2.1'
implementation 'com.google.android.flexbox:flexbox:3.0.0'

View File

@ -3,7 +3,6 @@ package com.muqingbfq;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Intent;
@ -34,7 +33,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.muqingbfq.databinding.ActivitySearchBinding;
import com.muqingbfq.fragment.search;
import com.muqingbfq.mq.FragmentActivity;
import com.muqingbfq.mq.gj;
import com.muqingbfq.mq.wj;
@ -45,6 +43,7 @@ import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class activity_search extends FragmentActivity<ActivitySearchBinding> {
@ -58,8 +57,6 @@ public class activity_search extends FragmentActivity<ActivitySearchBinding> {
view, "view");
context.startActivity(new Intent(context, activity_search.class), options.toBundle());
}
@SuppressLint("NotifyDataSetChanged")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -70,9 +67,6 @@ public class activity_search extends FragmentActivity<ActivitySearchBinding> {
//设置是否换行
manager.setFlexWrap(FlexWrap.WRAP);
manager.setAlignItems(AlignItems.STRETCH);
// binding.searchRecycler.setBackgroundColor(gj.getbackgroundColor(this));
binding.listRecycler.setLayoutManager(manager);
binding.listRecycler.setAdapter(new SearchRecordAdapter());
@ -90,19 +84,22 @@ public class activity_search extends FragmentActivity<ActivitySearchBinding> {
.setTitle("删除")
.setMessage("清空历史记录?")
.setNegativeButton("取消", null)
.setPositiveButton("确定", (dialogInterface, i) -> {
.setPositiveButton("确定", (dialogInterface, ii) -> {
int i = 0;
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
iterator.next();
iterator.remove();
binding.listRecycler.getAdapter().notifyItemRemoved(i++);
}
binding.xxbj1.setVisibility(View.GONE);
wj.sc(wj.filesdri + wj.lishi_json);
json_list.clear();
binding.listRecycler.getAdapter().notifyDataSetChanged();
findViewById(R.id.xxbj1).setVisibility(View.GONE);
})
.show());
listPopupWindow = findViewById(R.id.search_recycler);
//历史记录的LayoutManager
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list);
listPopupWindow.setAdapter(adapter);
//设置项点击监听
listPopupWindow.setOnItemClickListener((adapterView, view, i, l) -> {
view.clearFocus();
@ -169,16 +166,24 @@ public class activity_search extends FragmentActivity<ActivitySearchBinding> {
gj.ycjp(binding.editview.editText);
}
@SuppressLint("NotifyDataSetChanged")
private void addSearchRecord(String name) {
try {
if (!binding.xxbj1.isShown()) {
binding.xxbj1.setVisibility(View.VISIBLE);
}
json_list.remove(name);
json_list.add(0, name);
int existingIndex = json_list.indexOf(name);
if (existingIndex != -1) {
// 交换两个元素的位置
json_list.remove(name);
json_list.add(0, name);
binding.listRecycler.getAdapter().notifyItemMoved(existingIndex, 0);
} else {
// json_list.remove(name);
json_list.add(0, name);
binding.listRecycler.getAdapter().notifyItemInserted(0);
}
wj.xrwb(wj.filesdri + wj.lishi_json, new Gson().toJson(json_list));
binding.listRecycler.getAdapter().notifyDataSetChanged();
// binding.listRecycler.getAdapter().notifyDataSetChanged();
} catch (Exception e) {
gj.sc(e);
}
@ -211,9 +216,9 @@ public class activity_search extends FragmentActivity<ActivitySearchBinding> {
public void start(String name) {
dismiss();
if (!TextUtils.isEmpty(name)) {
search sea = (search) getSupportFragmentManager().findFragmentById(R.id.search_fragment);
/* search sea = (search) getSupportFragmentManager().findFragmentById(R.id.search_fragment);
binding.searchFragment.setVisibility(View.VISIBLE);
sea.sx(name);
sea.sx(name);*/
addSearchRecord(name);
}
}
@ -272,8 +277,8 @@ public class activity_search extends FragmentActivity<ActivitySearchBinding> {
setTitle("删除此记录:" + keyword)
.setPositiveButton("确定", (dialogInterface, i) -> {
json_list.remove(keyword);
notifyItemRemoved(holder.getAdapterPosition());
wj.xrwb(wj.filesdri + wj.lishi_json, new Gson().toJson(json_list));
notifyItemRemoved(position);
})
.setNegativeButton("取消", null)
.show();

View File

@ -6,21 +6,33 @@ import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.GestureDetector;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.ColorUtils;
import androidx.palette.graphics.Palette;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.Target;
import com.google.android.material.slider.Slider;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@ -38,38 +50,40 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class bfq extends AppCompatActivity<ActivityBfqBinding> {
public class bfq extends AppCompatActivity<ActivityBfqBinding>
implements GestureDetector.OnGestureListener {
public String lrc;
public MP3 mp3;
public boolean isplay = true;
GestureDetector gestureDetector;
@SuppressLint("ClickableViewAccessibility")
private void setLrc() {
if (!gj.isTablet(this)) {
ViewGroup.LayoutParams layoutParams = binding.cardview.getLayoutParams();
DisplayMetrics dm = getResources().getDisplayMetrics();
main.k = dm.widthPixels;
main.g = dm.heightPixels;
layoutParams.height = main.k - 100;
layoutParams.width = main.k - 100;
layoutParams.height = (int) (main.k / 1.3f);
layoutParams.width = (int) (main.k / 1.3f);
binding.cardview.setLayoutParams(layoutParams);
binding.fragmentBfq.setOnTouchListener((v, event) -> bfq.super.onTouchEvent(event));
binding.fragmentBfq.setOnClickListener((view) -> {
if (binding.cardview.getVisibility() == View.VISIBLE) {
binding.cardview.setVisibility(View.GONE);
binding.lrcView.setVisibility(View.VISIBLE);
} else {
binding.cardview.setVisibility(View.VISIBLE);
binding.lrcView.setVisibility(View.GONE);
}
});
binding.lrcView.setOnTapListener((view, x, y) -> {
if (binding.cardview.getVisibility() == View.VISIBLE) {
binding.cardview.setVisibility(View.GONE);
binding.lrcView.setVisibility(View.VISIBLE);
} else {
binding.cardview.setVisibility(View.VISIBLE);
binding.lrcView.setVisibility(View.GONE);
}
// 隐藏view2并显示view1的动画效果
view.animate()
.alpha(0.0f)
.setDuration(500)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
view.setVisibility(View.GONE);
binding.cardview.setVisibility(View.VISIBLE);
binding.cardview.setAlpha(0.0f);
binding.cardview.animate().alpha(1.0f).setDuration(500).setListener(null);
}
});
});
}
binding.lrcView.
@ -106,10 +120,8 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
@SuppressLint("ClickableViewAccessibility")
@Override
protected void UI(@Nullable Bundle savedInstanceState) {
// getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
gestureDetector = new GestureDetector(this, this);
setLrc();
setSupportActionBar(binding.toolbar);
binding.kg.setOnClickListener(v -> {
if (bfqkz.mt.isPlaying()) {
bfqkz.mt.pause();
@ -119,14 +131,14 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
});
binding.xyq.setOnClickListener(v -> bfq_an.xyq());
binding.syq.setOnClickListener(v -> bfq_an.syq());
binding.image1.setOnClickListener(new toolbar());
binding.image2.setOnClickListener(new toolbar());
binding.bfqListMp3.
setOnClickListener(view1 -> com.muqingbfq.fragment.bflb_db.start(this));
binding.control.setOnClickListener(new bfq_an.control(binding.control));
// binding.fragmentBfq.setOnTouchListener(new Touch());
binding.toolbar.setOnTouchListener(new Touch());
binding.getRoot().setOnTouchListener(new Touch());
binding.like.setOnClickListener(view1 -> {
try {
Gson gson = new Gson();
@ -165,22 +177,18 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
new thread().start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.bfq,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId()== R.id.fx && bfqkz.xm != null) {
com.muqingbfq.mq.gj.fx(this,
"音乐名称:" + bfqkz.xm.name +
"\n 作者:" + bfqkz.xm.zz +
"\n 链接https://music.163.com/#/song?id=" + bfqkz.xm.id);
} else if (item.getItemId() == android.R.id.home) {
finish();
private class toolbar implements View.OnClickListener {
@Override
public void onClick(View v) {
if (v.getId() == R.id.image1) {
finish();
} else if (v.getId() == R.id.image2) {
com.muqingbfq.mq.gj.fx(v.getContext(),
"音乐名称:" + mp3.name +
"\n 作者:" + mp3.zz +
"\n 链接https://music.163.com/#/song?id=" + mp3.id);
}
}
return super.onOptionsItemSelected(item);
}
class thread extends Thread {
@ -193,6 +201,9 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
bfqkz.mp3(com.muqingbfq.api.url.hq(mp3));
}
}
if (binding == null) {
return;
}
main.handler.post(() -> {
if (mp3 != null) {
sx();
@ -205,6 +216,22 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
if (event.getAction() == MotionEvent.ACTION_UP) {
if (binding.getRoot().getRootView().getTranslationY() > (main.g / 2.0f)) {
finish();
return true;
}
ObjectAnimator animator = ObjectAnimator.ofFloat(binding.getRoot().getRootView()
, "y", binding.getRoot().getRootView().getTranslationY(), 0);
animator.setDuration(500);
animator.start();
}
return super.onTouchEvent(event);
}
public void sx() {
setname(mp3.name);
setzz(mp3.zz);
@ -223,9 +250,6 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
}
public void setzz(String str) {
if (binding == null) {
return;
}
binding.zz.setText(str);
}
@ -236,61 +260,10 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
binding.kg.setImageResource(a);
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
@Override
protected ActivityBfqBinding getViewBindingObject(LayoutInflater layoutInflater) {
return ActivityBfqBinding.inflate(layoutInflater);
}
public class Touch implements View.OnTouchListener {
private float downY;
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
downY = motionEvent.getRawY();
break;
case MotionEvent.ACTION_MOVE:
//长按事件可以移动
float moveY = motionEvent.getRawY();
//移动的距离
float dy = moveY - downY;
if (dy > main.g - main.g / 5.0) { // touchSlop是系统最小识别滑动距离可以避免抖动
// 在这里根据deltaY更新视图位置
finish();
return true;
} else if (dy < 0) {
return true;
}
binding.getRoot().setTranslationY(dy);
return true;
case MotionEvent.ACTION_UP:
if (binding.getRoot().getY() > main.g - main.g / 1.5) {
finish();
return true;
}
ObjectAnimator animator = ObjectAnimator.ofFloat(binding.getRoot()
, "y", binding.getRoot().getY(), 0);
animator.setDuration(300);
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
binding.getRoot().setY(0);
}
});
animator.start();
break;
}
return false;
}
}
public void setlike(boolean bool) {
int color = R.color.text;
@ -358,15 +331,60 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
if (mp3file.hasId3v2Tag()) {
ID3v2 id3v2Tag = mp3file.getId3v2Tag();
byte[] albumImage = id3v2Tag.getAlbumImage();
binding.cardview.setImage(BitmapFactory.
decodeByteArray(albumImage, 0, albumImage.length));
Bitmap bitmap = BitmapFactory.
decodeByteArray(albumImage, 0, albumImage.length);
binding.cardview.imageView.setImageBitmap(bitmap);
color(bitmap);
}
return;
} catch (Exception a) {
gj.sc(getClass() + " yc:" + a);
}
}
binding.cardview.setImage(bfqkz.xm.picurl);
Glide.with(this)
.asBitmap()
.load(mp3.picurl)
.apply(new RequestOptions()
.placeholder(R.drawable.ic_launcher_foreground)
.error(R.drawable.ic_launcher_foreground))
.addListener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target<Bitmap> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(@NonNull Bitmap resource,
@NonNull Object model, Target<Bitmap> target,
@NonNull DataSource dataSource,
boolean isFirstResource) {
color(resource);
return false;
}
}).into(binding.cardview.imageView);
}
private void color(Bitmap bitmap) {
Palette.from(bitmap)
.maximumColorCount(10)
.generate(palette -> {
int lightMutedColor = palette.getLightMutedColor(Color.GRAY);
GradientDrawable gradientDrawable = new GradientDrawable(
GradientDrawable.Orientation.BOTTOM_TOP, // 渐变方向从上到下
new int[]{Color.BLACK, lightMutedColor} // 渐变颜色数组
);
// 设置渐变背景的形状为矩形
gradientDrawable.setShape(GradientDrawable.RECTANGLE);
// trackColorInactive
// 创建颜色列表
ColorStateList trackInactiveTintList = ColorStateList
.valueOf(ColorUtils.blendARGB(lightMutedColor
, Color.WHITE, 0.5f));
binding.tdt.setTrackInactiveTintList(trackInactiveTintList);
binding.getRoot().setBackground(gradientDrawable);
});
}
@Override
@ -384,13 +402,10 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
}
public void setMax(int max) {
if (max > 0) {
binding.tdt.setValueTo(max);
}
binding.tdt.setValueTo(Math.max(0, max));
}
public void Progress(int progress) {
// gj.sc(progress);
if (binding.tdt.getValueTo() < progress) {
return;
// 处理超出范围的情况
@ -398,4 +413,83 @@ public class bfq extends AppCompatActivity<ActivityBfqBinding> {
binding.tdt.setValue(progress);
binding.lrcView.updateTime(progress);
}
@Override
public boolean onDown(@NonNull MotionEvent e) {
return false;
}
@Override
public void onShowPress(@NonNull MotionEvent e) {
}
@Override
public boolean onSingleTapUp(@NonNull MotionEvent e) {
float x = e.getX();
float y = e.getY();
// 判断是哪个视图被点击了
if (isViewTouched(binding.fragmentBfq, x, y)) {
switchViews(binding.cardview, binding.lrcView);
}
return true;
}
private void switchViews(final View view1, final View view2) {
// 隐藏view1并显示view2的动画效果
if (binding.cardview.getVisibility() == View.VISIBLE) {
view1.animate()
.alpha(0.0f)
.setDuration(500)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
view1.setVisibility(View.GONE);
view2.setVisibility(View.VISIBLE);
view2.setAlpha(0.0f);
view2.animate().alpha(1.0f).setDuration(500).setListener(null);
}
});
}
}
// 判断触摸点是否在视图范围内的辅助方法
private boolean isViewTouched(View view, float x, float y) {
int[] location = new int[2];
view.getLocationOnScreen(location);
int left = location[0];
int top = location[1];
int right = left + view.getWidth();
int bottom = top + view.getHeight();
return x >= left && x <= right && y >= top && y <= bottom;
}
@Override
public boolean onScroll(@NonNull MotionEvent e1, @NonNull MotionEvent e2,
float distanceX, float distanceY) {
if (binding.cardview.getVisibility() == View.GONE) {
return false;
}
float y = binding.getRoot().getRootView().getTranslationY() - distanceY;
y = Math.max(0, y);
//移动的距离
if (y > main.g - main.g / 5.0) {
finish();
return true;
}
binding.getRoot().getRootView().setTranslationY(y);
return true;
}
@Override
public void onLongPress(@NonNull MotionEvent e) {
}
@Override
public boolean onFling(@NonNull MotionEvent e1, @NonNull MotionEvent e2,
float velocityX, float velocityY) {
return false;
}
}

View File

@ -104,7 +104,7 @@ public class fragment_clean extends FragmentActivity<ActivityCleanBinding> {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu_deleat = menu.add("删除");
menu_deleat.setIcon(R.drawable.deleat);
menu_deleat.setIcon(R.drawable.delete);
menu_deleat.setTitle("删除");
menu_deleat.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu_deleat.setVisible(false);

View File

@ -3,22 +3,21 @@ package com.muqingbfq.fragment;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.muqingbfq.R;
import com.muqingbfq.XM;
@ -73,6 +72,14 @@ public class gd extends com.muqingbfq.mq.FragmentActivity<ActivityGdBinding> {
new start(id);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == android.R.id.home) {
ActivityCompat.finishAfterTransition(this);
}
return true;
}
@Override
protected ActivityGdBinding getViewBindingObject(LayoutInflater layoutInflater) {
return ActivityGdBinding.inflate(layoutInflater);
@ -81,7 +88,6 @@ public class gd extends com.muqingbfq.mq.FragmentActivity<ActivityGdBinding> {
@SuppressLint("NotifyDataSetChanged")
class start extends Thread {
String id;
public start(String id) {
binding.recyclerview1Bar.setVisibility(View.VISIBLE);
this.id = id;
@ -139,7 +145,6 @@ public class gd extends com.muqingbfq.mq.FragmentActivity<ActivityGdBinding> {
this.list = list;
this.bool = bool;
}
@SuppressLint("NotifyDataSetChanged")
public void setonlong(int position) {
XM xm = list.get(position);
gj.sc(xm.name);

View File

@ -3,6 +3,7 @@ package com.muqingbfq.fragment;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.LayoutInflater;
@ -35,7 +36,6 @@ import com.muqingbfq.api.resource;
import com.muqingbfq.bfqkz;
import com.muqingbfq.databinding.FragmentWdBinding;
import com.muqingbfq.databinding.ListGdBBinding;
import com.muqingbfq.home;
import com.muqingbfq.login.user_logs;
import com.muqingbfq.login.visitor;
import com.muqingbfq.main;
@ -58,11 +58,11 @@ public class wode extends Fragment {
public ImageView imageView;
FragmentWdBinding binding;
private final Object[][] lista = {
{R.drawable.bf, "最近播放", "mp3_hc.json"},
{R.drawable.mdimusicbox, "最近播放", "mp3_hc.json"},
{R.drawable.download, "下载音乐", "mp3_xz.json"},
{R.drawable.like, "喜欢音乐", "mp3_like.json"},
{R.drawable.ic_launcher_foreground, "本地搜索", "cd.json"},
{R.drawable.fuwuzhongxing, "更换接口", "API"},
{R.drawable.mdialbum, "喜欢音乐", "mp3_like.json"},
{R.drawable.filesearc, "本地搜索", "cd.json"},
{R.drawable.api, "更换接口", "API"},
{R.drawable.gd, "导入歌单", "gd"},
{R.drawable.paihangbang, "排行榜", "排行榜"},
{R.drawable.ic_launcher_foreground, "开发中", ""}
@ -86,6 +86,7 @@ public class wode extends Fragment {
name = binding.text1;
binding.appbar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
boolean isCollapsed = false; // 标记是否处于折叠状态
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (Math.abs(verticalOffset) >= appBarLayout.getTotalScrollRange()) {
@ -358,6 +359,7 @@ public class wode extends Fragment {
.error(R.drawable.ic_launcher_foreground)
.into(binding.imageView);
}
class baseadapter extends RecyclerView.Adapter<gd.VH> {
public List<XM> list = new ArrayList<>();
@ -371,9 +373,7 @@ public class wode extends Fragment {
@Override
public void onBindViewHolder(@NonNull gd.VH holder, @SuppressLint("RecyclerView") int position) {
XM xm = list.get(position);
holder.itemView.setOnClickListener(v -> {
mp3.start(getActivity(), new String[]{xm.id, xm.name}, v);
});
holder.itemView.setOnClickListener(v -> mp3.start(getActivity(), new String[]{xm.id, xm.name}, v));
holder.itemView.setOnLongClickListener(v -> {
String[] stringArray = {"下载歌单", "删除歌单"};
new MaterialAlertDialogBuilder(getContext()).

View File

@ -0,0 +1,90 @@
package com.muqingbfq.mq;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Shader;
import android.renderscript.Allocation;
import android.renderscript.Element;
import android.renderscript.RenderScript;
import android.renderscript.ScriptIntrinsicBlur;
import androidx.annotation.NonNull;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
public class BlurGradientTransformation extends BitmapTransformation {
private static final String ID = "com.muqingbfq.mq.BlurGradientTransformation";
private static final byte[] ID_BYTES = ID.getBytes(StandardCharsets.UTF_8);
Context context;
public BlurGradientTransformation(Context context) {
this.context = context;
}
@Override
protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
Bitmap blurredBitmap = blurBitmap(toTransform);
// 创建渐变遮罩层
Bitmap maskBitmap = createGradientMask(outWidth, outHeight);
// 将原始图片和渐变遮罩层进行组合
Bitmap resultBitmap = Bitmap.createBitmap(outWidth, outHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(resultBitmap);
canvas.drawBitmap(toTransform, 0, 0, null);
canvas.drawBitmap(blurredBitmap, 0, outHeight / 2.0f, null);
canvas.drawBitmap(maskBitmap, 0, 0, null);
return resultBitmap;
}
private static final int BLUR_RADIUS = 25;
private static final float GRADIENT_HEIGHT_PERCENTAGE = 0.5f;
private Bitmap blurBitmap(Bitmap bitmap) {
// 进行高斯模糊处理
RenderScript rs = RenderScript.create(context);
ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
Allocation input = Allocation.createFromBitmap(rs, bitmap);
Allocation output = Allocation.createTyped(rs, input.getType());
blurScript.setRadius(BLUR_RADIUS);
blurScript.setInput(input);
blurScript.forEach(output);
output.copyTo(bitmap);
return bitmap; // 这里需要替换成实际的高斯模糊处理方法
}
private Bitmap createGradientMask(int width, int height) {
// 创建渐变遮罩层
// ...
Bitmap maskBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(maskBitmap);
LinearGradient gradient = new LinearGradient(0, height *
(1 - GRADIENT_HEIGHT_PERCENTAGE), 0, height,
0xFFFFFFFF, 0x00FFFFFF, Shader.TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(gradient);
canvas.drawRect(0, height * (1 - GRADIENT_HEIGHT_PERCENTAGE), width, height, paint);
return null; // 这里需要替换成实际的渐变遮罩层创建方法
}
@Override
public void updateDiskCacheKey(MessageDigest messageDigest) {
messageDigest.update(ID_BYTES);
}
@Override
public boolean equals(Object obj) {
return obj instanceof BlurGradientTransformation;
}
@Override
public int hashCode() {
return ID.hashCode();
}
}

View File

@ -16,7 +16,6 @@ import okhttp3.Response;
public class wl {
public static String Cookie;
public static void setcookie(String cookie) {
wl.Cookie = cookie;
main.edit.putString("Cookie", cookie);

View File

@ -1,7 +1,6 @@
package com.muqingbfq.view;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.AttributeSet;
import android.widget.ImageView;
@ -9,9 +8,6 @@ import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.material.card.MaterialCardView;
import com.muqingbfq.R;
import com.muqingbfq.bfq;
import com.muqingbfq.main;
import com.muqingbfq.mq.gj;
public class CardImage extends MaterialCardView {
public ImageView imageView;
@ -39,11 +35,14 @@ public class CardImage extends MaterialCardView {
public void setImage(Object bitmap) {
Glide.with(this)
.load(bitmap)
// .apply(new RequestOptions().placeholder(R.drawable.icon))
.error(R.drawable.ic_launcher_foreground)
.into(imageView);
try {
Glide.with(this)
.load(bitmap)
.error(R.drawable.ic_launcher_foreground)
.into(imageView);
} catch (Exception e) {
e.printStackTrace();
}
}
public void setImageapply(Object bitmap) {

View File

@ -0,0 +1,29 @@
package com.muqingbfq.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.appbar.MaterialToolbar;
public class Toolbar extends MaterialToolbar {
public Toolbar(@NonNull Context context) {
super(context);
}
public Toolbar(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public Toolbar(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// 处理触摸事件逻辑
return false;
}
}

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:fillColor="@color/text"
android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z" />
android:pathData="M18 16.08c-0.76 0 -1.44 0.3 -1.96 0.77L8.91 12.7c0.05 -0.23 0.09 -0.46 0.09 -0.7s-0.04 -0.47 -0.09 -0.7l7.05 -4.11c0.54 0.5 1.25 0.81 2.04 0.81c1.66 0 3 -1.34 3 -3s-1.34 -3 -3 -3s-3 1.34 -3 3c0 0.24 0.04 0.47 0.09 0.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0 -3 1.34 -3 3s1.34 3 3 3c0.79 0 1.5 -0.31 2.04 -0.81l7.12 4.15c-0.05 0.21 -0.08 0.43 -0.08 0.66c0 1.61 1.31 2.91 2.92 2.91s2.92 -1.3 2.92 -2.91s-1.31 -2.92 -2.92 -2.92M18 4c0.55 0 1 0.45 1 1s-0.45 1 -1 1s-1 -0.45 -1 -1s0.45 -1 1 -1M6 13c-0.55 0 -1 -0.45 -1 -1s0.45 -1 1 -1s1 0.45 1 1s-0.45 1 -1 1m12 7c-0.55 0 -1 -0.45 -1 -1s0.45 -1 1 -1s1 0.45 1 1s-0.45 1 -1 1"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,34 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="m37,22l-3,3l-11,-11l3,-3c1.5,-1.5 7,-4 11,0s1.5,9.5 0,11"
android:strokeLineJoin="round"
android:strokeWidth="4"
android:fillColor="#666666"
android:strokeColor="#666666"
android:strokeLineCap="round"/>
<path
android:pathData="m42,6l-5,5"
android:strokeLineJoin="round"
android:strokeWidth="4"
android:fillColor="#00000000"
android:strokeColor="#666666"
android:strokeLineCap="round"/>
<path
android:pathData="m11,26l3,-3l11,11l-3,3c-1.5,1.5 -7,4 -11,0s-1.5,-9.5 0,-11"
android:strokeLineJoin="round"
android:strokeWidth="4"
android:fillColor="#666666"
android:strokeColor="#666666"
android:strokeLineCap="round"/>
<path
android:pathData="m23,32l4,-4M6,42l5,-5m5,-12l4,-4"
android:strokeLineJoin="round"
android:strokeWidth="4"
android:fillColor="#00000000"
android:strokeColor="#666666"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="36dp"
android:width="36dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="@color/text"
android:pathData="M332.4,813.5h545.2c17.8,0 31.3,-13.3 31.3,-31.3s-13.3,-31.3 -31.3,-31.3L332.4,750.8c-17.8,0 -31.3,13.3 -31.3,31.3 0,13.3 13.5,31.3 31.3,31.3zM332.4,545.2h545.2c22.3,0 35.8,-13.3 35.8,-31.3s-13.3,-31.3 -31.3,-31.3L332.4,482.5c-17.8,-4.5 -31.3,9 -31.3,31.3 0,18 13.5,31.3 31.3,31.3zM332.4,281.6h545.2c22.3,0 35.8,-17.8 35.8,-35.8 0,-17.8 -13.3,-31.3 -31.3,-31.3L332.4,214.4c-17.8,0 -31.3,13.3 -31.3,31.3 0,17.8 13.5,35.8 31.3,35.8zM158.1,826.8c26.8,0 49.2,-22.3 49.2,-49.2s-22.3,-49.2 -49.2,-49.2 -49.2,22.3 -49.2,49.2 22.3,49.2 49.2,49.2zM207.3,513.8c0,-26.8 -22.3,-49.2 -49.2,-49.2 -26.8,-4.5 -49.2,17.8 -49.2,49.2 0,26.8 22.3,49.2 49.2,49.2s49.2,-22.3 49.2,-49.2zM158.1,294.9c26.8,0 49.2,-22.3 49.2,-49.2s-22.3,-49.2 -49.2,-49.2 -49.2,22.3 -49.2,49.2 22.3,49.2 49.2,49.2zM158.1,294.9" />
</vector>

View File

@ -1,9 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="36dp"
android:height="36dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M240.5,180.2l271.5,271.5 271.5,-271.5a42.7,42.7 0,0 1,56.3 -3.5l4,3.5a42.7,42.7 0,0 1,0 60.3l-271.5,271.5 271.5,271.5a42.7,42.7 0,0 1,-56.3 63.9l-4,-3.5 -271.5,-271.5 -271.5,271.5 -4,3.5a42.7,42.7 0,0 1,-56.3 -63.9l271.5,-271.5 -271.5,-271.5a42.7,42.7 0,0 1,60.3 -60.3z"
android:fillColor="#000000"/>
</vector>
xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:fillColor="#CCCCCC"
android:pathData="M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z" />
</vector>

View File

@ -1,13 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:tint="@color/text"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M840,288H688v-56c0,-40 -32,-72 -72,-72h-208C368,160 336,192 336,232V288h-152c-12.8,0 -24,11.2 -24,24s11.2,24 24,24h656c12.8,0 24,-11.2 24,-24s-11.2,-24 -24,-24zM384,288v-56c0,-12.8 11.2,-24 24,-24h208c12.8,0 24,11.2 24,24V288H384zM758.4,384c-12.8,0 -24,11.2 -24,24v363.2c0,24 -19.2,44.8 -44.8,44.8H332.8c-24,0 -44.8,-19.2 -44.8,-44.8V408c0,-12.8 -11.2,-24 -24,-24s-24,11.2 -24,24v363.2c0,51.2 41.6,92.8 92.8,92.8h358.4c51.2,0 92.8,-41.6 92.8,-92.8V408c-1.6,-12.8 -12.8,-24 -25.6,-24z"
android:fillColor="#515151"/>
<path
android:pathData="M444.8,744v-336c0,-12.8 -11.2,-24 -24,-24s-24,11.2 -24,24v336c0,12.8 11.2,24 24,24s24,-11.2 24,-24zM627.2,744v-336c0,-12.8 -11.2,-24 -24,-24s-24,11.2 -24,24v336c0,12.8 11.2,24 24,24s24,-11.2 24,-24z"
android:fillColor="#515151"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2V7H6zM8 9h8v10H8zm7.5 -5l-1 -1h-5l-1 1H5v2h14V4z"
android:fillColor="#000000" />
</vector>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M490.7,644.3L490.7,469.3h85.3v174.9l46.9,-46.9 59.7,59.7 -68.3,68.3h132.3c59.7,-8.5 106.7,-64 106.7,-128 0,-72.5 -55.5,-128 -128,-128 -17.1,0 -29.9,4.3 -42.7,8.5L682.7,469.3c0,-93.9 -76.8,-170.7 -170.7,-170.7s-170.7,76.8 -170.7,170.7c0,17.1 4.3,29.9 4.3,46.9 -8.5,-4.3 -17.1,-4.3 -25.6,-4.3C260.3,512 213.3,558.9 213.3,618.7S260.3,725.3 320,725.3h132.3L384,657.1l59.7,-59.7 46.9,46.9zM614.4,725.3l-81.1,81.1 -81.1,-81.1L405.3,725.3v85.3h-85.3C213.3,810.7 128,725.3 128,618.7c0,-85.3 55.5,-157.9 128,-183.5C273.1,311.5 379.7,213.3 512,213.3c110.9,0 209.1,72.5 243.2,170.7 102.4,12.8 183.5,102.4 183.5,213.3s-85.3,200.5 -192,213.3h-85.3v-85.3h-46.9z"
android:fillColor="@color/text"/>
android:pathData="M8 17v-2h8v2zm8 -7l-4 4l-4 -4h2.5V6h3v4zm-4 -8c5.5 0 10 4.5 10 10s-4.5 10 -10 10S2 17.5 2 12S6.5 2 12 2m0 2c-4.42 0 -8 3.58 -8 8s3.58 8 8 8s8 -3.58 8 -8s-3.58 -8 -8 -8"
android:fillColor="#000000" />
</vector>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M515.6,695.4l-364.3,-364.3c-20,-20.1 -52.6,-20.1 -72.6,-0 -20,20 -20,52.5 0,72.6L478,803c20,20 52.5,20 72.6,0 1.6,-1.6 2.8,-3.4 4.2,-5.1 0.3,-0.3 0.7,-0.5 1,-0.8l389.9,-389.9c19.6,-19.6 19.6,-51.3 0,-70.9s-51.3,-19.6 -70.9,0L515.6,695.4z"
android:fillColor="@color/text"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="26dp"
android:height="26dp">
<path
android:pathData="M7.41 8.58L12 13.17l4.59 -4.59L18 10l-6 6l-6 -6z"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M16.5 12c2.5 0 4.5 2 4.5 4.5c0 0.88 -0.25 1.71 -0.69 2.4l3.08 3.1L22 23.39l-3.12 -3.07c-0.69 0.43 -1.51 0.68 -2.38 0.68c-2.5 0 -4.5 -2 -4.5 -4.5s2 -4.5 4.5 -4.5m0 2a2.5 2.5 0 0 0 -2.5 2.5a2.5 2.5 0 0 0 2.5 2.5a2.5 2.5 0 0 0 2.5 -2.5a2.5 2.5 0 0 0 -2.5 -2.5M9 4l2 2h8a2 2 0 0 1 2 2v3.81A6.48 6.48 0 0 0 16.5 10a6.5 6.5 0 0 0 -6.5 6.5c0 1.29 0.37 2.5 1 3.5H3a2 2 0 0 1 -2 -2V6c0 -1.11 0.89 -2 2 -2z"
android:fillColor="#000000" />
</vector>

View File

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="36dp"
android:height="36dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M667.8,117.3C832.9,117.3 938.7,249.7 938.7,427.9c0,138.3 -125.1,290.5 -371.6,461.6a96.8,96.8 0,0 1,-110.2 0C210.4,718.4 85.3,566.1 85.3,427.9 85.3,249.7 191.1,117.3 356.2,117.3c59.6,0 100.1,20.8 155.8,68.1C567.7,138.2 608.2,117.3 667.8,117.3z"
android:fillColor="@color/text"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M12 21.35l-1.45 -1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41 0.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77 -3.4 6.86 -8.55 11.53z"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M12 11a1 1 0 0 0 -1 1a1 1 0 0 0 1 1a1 1 0 0 0 1 -1a1 1 0 0 0 -1 -1m0 5.5c-2.5 0 -4.5 -2 -4.5 -4.5s2 -4.5 4.5 -4.5s4.5 2 4.5 4.5s-2 4.5 -4.5 4.5M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10 -10A10 10 0 0 0 12 2"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M16 9h-3v5.5a2.5 2.5 0 0 1 -2.5 2.5A2.5 2.5 0 0 1 8 14.5a2.5 2.5 0 0 1 2.5 -2.5c0.57 0 1.08 0.19 1.5 0.5V7h4m3 -4H5a2 2 0 0 0 -2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2 -2V5a2 2 0 0 0 -2 -2"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M14 19h4V5h-4M6 19h4V5H6z"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M10 16.5v-9l6 4.5M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10 -10A10 10 0 0 0 12 2"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="60"
android:endColor="#252525"
android:startColor="#474242"
android:type="linear" />
</shape>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M21 19v-2H8v2zm0 -6v-2H8v2zM8 7h13V5H8zM4 5v2h2V5zM3 5a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1H4a1 1 0 0 1 -1 -1zm1 6v2h2v-2zm-1 0a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1H4a1 1 0 0 1 -1 -1zm1 6v2h2v-2zm-1 0a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1H4a1 1 0 0 1 -1 -1z"
android:fillColor="#000000" />
</vector>

View File

@ -1,10 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:tint="@color/text"
android:viewportWidth="1024"
android:viewportHeight="1024">
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M844.8,665.6c-6.4,-6.4 -16,-12.8 -25.6,-9.6 -19.2,0 -35.2,16 -35.2,35.2 0,9.6 6.4,19.2 12.8,25.6l41.6,41.6c-44.8,-6.4 -86.4,-22.4 -121.6,-51.2 -3.2,0 -3.2,-3.2 -6.4,-6.4L332.8,304C268.8,233.6 192,195.2 99.2,195.2c-19.2,0 -35.2,16 -35.2,35.2s16,32 35.2,32c73.6,0 134.4,32 182.4,86.4l384,400 6.4,6.4c48,38.4 108.8,64 172.8,70.4l-48,44.8c-9.6,6.4 -16,19.2 -16,28.8 0,19.2 19.2,35.2 38.4,32 9.6,0 19.2,-6.4 25.6,-12.8l99.2,-92.8c16,-16 16,-41.6 0,-57.6l-99.2,-102.4zM841.6,108.8c-12.8,-16 -32,-19.2 -48,-6.4 -9.6,6.4 -12.8,16 -12.8,25.6 0,12.8 3.2,22.4 16,28.8l41.6,41.6c-73.6,9.6 -140.8,38.4 -192,89.6l-115.2,118.4c-12.8,12.8 -12.8,32 0,44.8 6.4,6.4 16,9.6 25.6,9.6s19.2,-3.2 25.6,-9.6l112,-118.4c41.6,-38.4 92.8,-64 147.2,-70.4l-44.8,44.8c-6.4,6.4 -12.8,16 -12.8,25.6 0,19.2 16,35.2 32,35.2 9.6,0 19.2,-3.2 28.8,-9.6L950.4,256c12.8,-12.8 12.8,-35.2 0,-48l-108.8,-99.2m-438.4,448c-9.6,0 -19.2,3.2 -25.6,9.6l-118.4,121.6c-48,44.8 -96,67.2 -160,67.2L96,755.2c-19.2,0 -35.2,16 -35.2,35.2s16,32 35.2,32h3.2c83.2,0 147.2,-32 211.2,-86.4l121.6,-124.8c6.4,-6.4 9.6,-12.8 9.6,-22.4 0,-9.6 -3.2,-16 -9.6,-22.4 -9.6,-6.4 -19.2,-9.6 -28.8,-9.6z"
android:fillColor="#2c2c2c"/>
android:pathData="M14.83 13.41l-1.41 1.41l3.13 3.13L14.5 20H20v-5.5l-2.04 2.04zM14.5 4l2.04 2.04L4 18.59L5.41 20L17.96 7.46L20 9.5V4m-9.41 5.17L5.41 4L4 5.41l5.17 5.17z"
android:fillColor="#000000" />
</vector>

View File

@ -1,10 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:tint="@color/text"
android:viewportWidth="1024"
android:viewportHeight="1024">
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M162.6,491.9c-52.6,0 -95.4,-42.8 -95.4,-95.4L67.2,180.2c0,-19.8 6,-38.7 17.4,-54.9 14.7,-20.8 36.5,-34.7 61.7,-39.1 25.1,-4.4 50.4,1.3 71.2,16l153.8,108.2c9,6.3 16.8,14.1 23.1,23.1 14.7,20.8 20.3,46.1 16,71.2 -4.4,25.1 -18.2,47 -39.1,61.7l-153.8,108.2c-16.2,11.4 -35.1,17.4 -54.9,17.4zM162.6,142.4c-2.2,0 -4.4,0.2 -6.6,0.6 -9.9,1.7 -18.6,7.2 -24.4,15.5 -4.5,6.4 -6.9,13.9 -6.9,21.7v216.4c0,20.8 16.9,37.8 37.8,37.8 7.8,0 15.3,-2.4 21.7,-6.9l153.8,-108.2c8.3,-5.8 13.7,-14.5 15.5,-24.4 1.7,-9.9 -0.5,-20 -6.3,-28.2a37.9,37.9 0,0 0,-9.1 -9.1l-153.8,-108.2c-6.4,-4.5 -13.9,-6.9 -21.6,-6.9zM927.4,920.8L96,920.8c-15.9,0 -28.8,-12.9 -28.8,-28.8s12.9,-28.8 28.8,-28.8h831.4c15.9,0 28.8,12.9 28.8,28.8s-12.9,28.8 -28.8,28.8zM928.8,654.9L96,654.9c-15.9,0 -28.8,-12.9 -28.8,-28.8s12.9,-28.8 28.8,-28.8h832.8c15.9,0 28.8,12.9 28.8,28.8s-12.9,28.8 -28.8,28.8zM923.6,153.8L569.7,153.8c-15.9,0 -28.8,-12.9 -28.8,-28.8s12.9,-28.8 28.8,-28.8L923.6,96.2c15.9,0 28.8,12.9 28.8,28.8s-12.9,28.8 -28.8,28.8zM923.6,389L569.7,389c-15.9,0 -28.8,-12.9 -28.8,-28.8s12.9,-28.8 28.8,-28.8L923.6,331.4c15.9,0 28.8,12.9 28.8,28.8s-12.9,28.8 -28.8,28.8z"
android:fillColor="#616266"/>
android:pathData="M17 17H7v-3l-4 4l4 4v-3h12v-6h-2M7 7h10v3l4 -4l-4 -4v3H5v6h2z"
android:fillColor="#000000" />
</vector>

View File

@ -1,13 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:tint="@color/text"
android:viewportWidth="1024"
android:viewportHeight="1024">
android:viewportWidth="24"
android:viewportHeight="24"
android:width="128dp"
android:height="128dp">
<path
android:pathData="M773.6,203.8l-0.3,0.4a33.6,33.6 0,0 0,-20.3 -6.5c-19,0.8 -33.7,16.7 -33,35.8a33.8,33.8 0,0 0,15.6 26.8l-0.1,0.2a375.2,375.2 0,0 1,166.3 311.9c0,207 -168.4,375.5 -375.5,375.5 -27.8,0 -27.8,0 -54.3,-2.9 -90.5,-9.9 -152.6,-59 -155.5,-61.2a375.3,375.3 0,0 1,-165.6 -311.4c0,-201.4 159.5,-365.8 358.8,-374.6l-42,40.8 0.8,0.9a33.9,33.9 0,0 0,-15.3 29.2c0.8,19 16.7,33.8 35.7,33a33.8,33.8 0,0 0,26 -14.5l0.3,0.3 128.6,-125L515.7,34.1l-0.4,0.4a33.7,33.7 0,0 0,-26.3 -11.4c-18.9,0.8 -33.7,16.7 -33,35.7a33.9,33.9 0,0 0,13 25.2l45.2,45.3C275.2,135.7 82.6,331.7 82.6,572.3c0,147.6 73.1,285.1 193.2,366.1 3.1,2.6 77.6,62.2 188.8,74.3 29.4,3.2 31.1,3.3 61.8,3.3 244.7,0 443.7,-199.1 443.7,-443.7A443.4,443.4 0,0 0,773.6 203.8"
android:fillColor="#2c2c2c"/>
<path
android:pathData="M542.1,400.8a33.3,33.3 0,0 0,-17.1 6.1l-0.2,-0.3 -106.8,69.7 0.2,0.3a34,34 0,0 0,-15.8 29.7c0.8,18.9 16.7,33.7 35.7,33a33.1,33.1 0,0 0,17.1 -6l0.2,0.3 54,-35.3v249.9h0c0,0.5 -0.2,0.9 -0.2,1.4a34.2,34.2 0,1 0,68.4 -1.4h0v-0.2c0,-0.4 0.2,-0.8 0.2,-1.2 0,-0.3 -0.2,-0.5 -0.2,-0.8V435.2c0,-0.5 0.2,-0.9 0.2,-1.3a34.4,34.4 0,0 0,-35.7 -33"
android:fillColor="#2c2c2c"/>
android:pathData="M13 15V9h-1l-2 1v1h1.5v4m5.5 2H7v-3l-4 4l4 4v-3h12v-6h-2M7 7h10v3l4 -4l-4 -4v3H5v6h2z"
android:fillColor="#000000" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M10,16.5v-9l6,4.5M12,2A10,10 0,0 0,2 12a10,10 0,0 0,10 10a10,10 0,0 0,10 -10A10,10 0,0 0,12 2"
android:fillColor="#CCCCCC"/>
</vector>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Progress color of the progress bar -->
<item android:id="@android:id/progress">
<clip>
<shape android:shape="rectangle">
<solid android:color="@color/text_cz" />
</shape>
</clip>
</item>
</layer-list>

View File

@ -29,7 +29,7 @@
android:textColor="@color/text"
android:textSize="26sp" />
<TextView
<com.muqingbfq.view.Text
android:id="@+id/zz"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -162,7 +162,7 @@
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/cd"
android:src="@drawable/mpbackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:ignore="ContentDescription" />

View File

@ -4,41 +4,47 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:colorBackground"
android:background="@drawable/mpbackground"
android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:navigationIcon="@drawable/end">
android:layout_marginTop="3dp"
android:paddingHorizontal="10dp">
<ImageView
android:id="@+id/image1"
android:layout_width="36dp"
android:layout_height="36dp"
app:tint="#F1F1F1"
android:src="@drawable/end" />
<LinearLayout
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
android:layout_weight="1">
<com.muqingbfq.view.Text
android:id="@+id/name"
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="@string/name"
android:textColor="@color/text"
android:textSize="26sp" />
<TextView
android:id="@+id/zz"
android:visibility="visible"
android:textColor="#F1F1F1"
android:text="歌曲界面"
android:textSize="26dp" />
<com.muqingbfq.view.Text
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:maxLines="1"
android:text="@string/zz"
android:textSize="20sp" />
android:layout_height="match_parent"
android:visibility="gone"/>
</LinearLayout>
</com.google.android.material.appbar.MaterialToolbar>
<ImageView
android:id="@+id/image2"
android:layout_width="26dp"
android:layout_height="26dp"
app:tint="#F1F1F1"
android:src="@drawable/abc_ic_menu_share_mtrl_alpha"/>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/fragment_bfq"
@ -46,6 +52,7 @@
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<com.muqingbfq.view.CardImage
android:id="@+id/cardview"
android:layout_width="256dp"
@ -56,145 +63,176 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<me.wcy.lrcview.LrcView
android:id="@+id/lrcView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
app:lrcTextSize="20sp"
app:lrcNormalTextSize="16sp"
app:lrcCurrentTextColor="@color/text"
app:lrcNormalTextColor="@color/text_tm"
app:lrcTimelineTextColor="@color/text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
app:lrcCurrentTextColor="#EEEEEE"
app:lrcNormalTextColor="#CCCCCC"
app:lrcNormalTextSize="16sp"
app:lrcTextSize="20sp"
app:lrcTimelineTextColor="#7C7C7C" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bj"
android:paddingStart="6dp"
android:paddingTop="6dp"
android:paddingEnd="6dp"
android:paddingBottom="26dp">
android:paddingBottom="10dp">
<ImageView
android:id="@+id/like"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/like"
app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/text"
tools:ignore="ContentDescription" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:gravity="center_vertical"
android:orientation="horizontal"
app:tint="#CCCCCC"
app:layout_constraintBottom_toTopOf="@id/tdt"
app:layout_constraintEnd_toEndOf="parent">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="6dp"
android:orientation="vertical">
<com.muqingbfq.view.Text
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="@string/name"
android:textStyle="bold"
android:textColor="#CCCCCC"
android:textSize="26sp" />
<com.muqingbfq.view.Text
android:id="@+id/zz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="@string/zz"
android:textColor="#CCCCCC"
android:textSize="20sp" />
</LinearLayout>
<ImageView
android:id="@+id/like"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/like"
app:tint="#CCCCCC"
tools:ignore="ContentDescription" />
</LinearLayout>
<com.google.android.flexbox.FlexboxLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:orientation="horizontal"
app:alignItems="center"
app:flexDirection="row"
app:justifyContent="space_around"
app:layout_constraintBottom_toTopOf="@+id/download"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="6dp">
<ImageView
android:id="@+id/control"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/mt_sx"
app:tint="#CCCCCC"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/syq"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/syq"
app:tint="#CCCCCC"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/kg"
android:layout_width="46dp"
android:layout_height="46dp"
android:background="?selectableItemBackgroundBorderless"
android:src="@drawable/zt"
app:tint="#CCCCCC"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/xyq"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/xyq"
app:tint="#CCCCCC"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/bfq_list_mp3"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/mplist"
app:tint="#CCCCCC"
tools:ignore="ContentDescription" />
</com.google.android.flexbox.FlexboxLayout>
<com.google.android.material.slider.Slider
android:id="@+id/tdt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:labelBehavior="gone"
app:layout_constraintBottom_toTopOf="@id/time_a"
app:thumbColor="#E6E6E6"
app:trackColorActive="#CCCCCC"
tools:ignore="SpeakableTextPresentCheck" />
<TextView
android:id="@+id/time_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="@string/_00_00"
app:layout_constraintBottom_toTopOf="@id/linearLayout3"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/time_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:text="@string/_00_00"
app:layout_constraintBottom_toTopOf="@id/linearLayout3"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/download"
android:layout_width="36dp"
android:layout_height="36dp"
app:tint="#CCCCCC"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/download"
app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
app:layout_constraintEnd_toEndOf="parent"
app:tint="@color/text"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/control"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/mt_sx"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/syq"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginEnd="8dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/syq"
app:layout_constraintBottom_toBottomOf="@+id/kg"
app:layout_constraintEnd_toStartOf="@+id/kg"
app:layout_constraintTop_toTopOf="@+id/kg"
app:layout_constraintVertical_bias="0.5"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/kg"
android:layout_width="46dp"
android:layout_height="46dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/zt"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/control"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/xyq"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginStart="8dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:importantForAccessibility="no"
android:src="@drawable/xyq"
app:layout_constraintBottom_toBottomOf="@+id/kg"
app:layout_constraintStart_toEndOf="@+id/kg"
app:layout_constraintTop_toTopOf="@+id/kg"
app:layout_constraintVertical_bias="0.5" />
<ImageView
android:id="@+id/bfq_list_mp3"
android:layout_width="36dp"
android:layout_height="36dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/cd"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/kg"
tools:layout_editor_absoluteX="20dp">
<TextView
android:id="@+id/time_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/_00_00"
android:textSize="20sp" />
<com.google.android.material.slider.Slider
android:id="@+id/tdt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
app:labelBehavior="gone"
app:thumbColor="@color/thumbColor"
app:trackColorActive="@color/thumbColor"
tools:ignore="SpeakableTextPresentCheck" />
<TextView
android:id="@+id/time_b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/_00_00"
android:textSize="20sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>

View File

@ -14,8 +14,7 @@
android:layout_width="match_parent"
android:layout_height="6dp"
android:indeterminate="false"
android:max="100"
android:progressDrawable="@drawable/progress_bar_horizontal" />
android:max="100" />
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"

View File

@ -46,7 +46,7 @@
android:layout_marginEnd="16dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/deleat"
android:src="@drawable/deleat" />
android:src="@drawable/delete" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list_recycler"

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -14,10 +14,10 @@
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:id="@+id/bottomSheetDragHandleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_height="wrap_content" />
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
@ -27,7 +27,6 @@
android:text="@string/bflb"
android:textColor="@color/text"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="@+id/bottomSheetDragHandleView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@ -38,17 +37,18 @@
android:layout_height="36dp"
android:layout_gravity="end"
android:layout_marginEnd="6dp"
android:contentDescription="@null"
android:src="@drawable/deleat"
android:src="@drawable/delete"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/text" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/lb"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:layout_marginHorizontal="6dp"
android:layout_marginBottom="6dp"/>
android:layout_marginBottom="6dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</LinearLayout>

View File

@ -53,7 +53,7 @@
android:layout_height="30dp"
android:layout_margin="3dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/cd"
android:src="@drawable/mplist"
app:tint="@color/text"
android:contentDescription="@string/nullPlaylists" />
</LinearLayout>

View File

@ -3,16 +3,18 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:id="@+id/image"
android:layout_width="56dp"
android:layout_height="56dp"
android:background="@null"
android:src="@drawable/ic_launcher_foreground"
android:padding="6dp"
android:scaleType="fitXY"
app:tint="@color/text"
android:transitionName="view"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/text1"

View File

@ -4,6 +4,6 @@
android:id="@+id/item_sc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/deleat"
android:icon="@drawable/delete"
android:title="@string/deleat" />
</menu>

View File

@ -11,7 +11,7 @@
<item
android:id="@+id/c"
android:icon="@drawable/deleat"
android:icon="@drawable/delete"
android:title="@string/chucunqingli" />
<item

View File

@ -11,7 +11,6 @@
<item name="windowNoTitle">true</item>
<!--使用动画-->
<item name="android:windowContentTransitions">true</item>
<!-- 添加主题属性以启用沉浸式状态栏 -->
<item name="android:windowTranslucentStatus">true</item>

View File

@ -543,10 +543,12 @@ public class LrcView extends View {
* @param y 歌词中心 Y 坐标
*/
private void drawText(Canvas canvas, StaticLayout staticLayout, float y) {
canvas.save();
canvas.translate(mLrcPadding, y - (staticLayout.getHeight() >> 1));
staticLayout.draw(canvas);
canvas.restore();
if (staticLayout != null) {
canvas.save();
canvas.translate(mLrcPadding, y - (staticLayout.getHeight() >> 1));
staticLayout.draw(canvas);
canvas.restore();
}
}
@SuppressLint("ClickableViewAccessibility")