统一各界面的图片默认背景

- 主界面相册集预览封面使用背景设置
- 相册浏览界面图片预览使用背景设置
- 返回界面时自动刷新背景设置
This commit is contained in:
2026-04-25 19:59:45 +08:00
parent ffbecaa31d
commit 6d9bd175f6
5 changed files with 68 additions and 2 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Sat Apr 25 19:42:01 CST 2026
#Sat Apr 25 19:56:18 CST 2026
stageCount=3
libraryProject=
baseVersion=15.0
publishVersion=15.0.2
buildCount=8
buildCount=10
baseBetaVersion=15.0.3

View File

@@ -48,6 +48,7 @@ public class AlbumActivity extends AppCompatActivity {
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
adapter = new ImageAdapter();
adapter.setContext(this);
recyclerView.setAdapter(adapter);
adapter.setOnImageClickListener(new OnImageClickListener() {
@@ -149,5 +150,8 @@ public class AlbumActivity extends AppCompatActivity {
if (checkPermission()) {
loadImages();
}
if (adapter != null) {
adapter.refreshBg();
}
}
}

View File

@@ -20,6 +20,21 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
public static final String TAG = "AlbumAdapter";
private ArrayList<Album> albums = new ArrayList<>();
private OnAlbumClickListener listener;
private Preferences prefs;
private int bgType = 0;
private int getBgRes() {
switch (bgType) {
case 0:
return R.drawable.bg_checkerboard;
case 1:
return R.drawable.bg_white;
case 2:
return R.drawable.bg_black;
default:
return R.drawable.bg_checkerboard;
}
}
public interface OnAlbumClickListener {
void onAlbumClick(Album album);
@@ -34,6 +49,18 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
LogUtils.d(TAG, "setData: " + albums.size() + " albums");
notifyDataSetChanged();
}
public void setContext(android.content.Context context) {
prefs = new Preferences(context);
bgType = prefs.getBgType();
}
public void refreshBg() {
if (prefs != null) {
bgType = prefs.getBgType();
notifyDataSetChanged();
}
}
@NonNull
@Override
@@ -48,6 +75,8 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
final Album album = albums.get(position);
LogUtils.d(TAG, "bind: " + album.getName() + ", cover=" + album.getCoverUri());
holder.coverImage.setBackgroundResource(getBgRes());
holder.albumName.setText(album.getName());
holder.imageCount.setText(album.getImageCount() + " photos");

View File

@@ -18,6 +18,21 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder>
private ArrayList<Uri> imageUrls = new ArrayList<>();
private ArrayList<String> imagePaths = new ArrayList<>();
private OnImageClickListener listener;
private int bgType = 0;
private Preferences prefs;
private int getBgRes() {
switch (bgType) {
case 0:
return R.drawable.bg_checkerboard;
case 1:
return R.drawable.bg_white;
case 2:
return R.drawable.bg_black;
default:
return R.drawable.bg_checkerboard;
}
}
public interface OnImageClickListener {
void onImageClick(int position, ArrayList<Uri> urls, ArrayList<String> paths);
@@ -33,6 +48,18 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder>
LogUtils.d(TAG, "setData: " + urls.size() + " images");
notifyDataSetChanged();
}
public void setContext(android.content.Context context) {
prefs = new Preferences(context);
bgType = prefs.getBgType();
}
public void refreshBg() {
if (prefs != null) {
bgType = prefs.getBgType();
notifyDataSetChanged();
}
}
@NonNull
@Override
@@ -44,6 +71,8 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder>
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
holder.imageView.setBackgroundResource(getBgRes());
Glide.with(holder.imageView.getContext())
.load(imageUrls.get(position))
.centerCrop()

View File

@@ -52,6 +52,7 @@ public class MainActivity extends AppCompatActivity {
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
adapter = new AlbumAdapter();
adapter.setContext(this);
recyclerView.setAdapter(adapter);
adapter.setOnAlbumClickListener(new OnAlbumClickListener() {
@@ -244,6 +245,9 @@ public class MainActivity extends AppCompatActivity {
scanMediaStore();
loadAlbums();
}
if (adapter != null) {
adapter.refreshBg();
}
}
private void scanMediaStore() {