Compare commits
4 Commits
gallery-v1
...
gallery-v1
| Author | SHA1 | Date | |
|---|---|---|---|
| c2618672bb | |||
| 6d9bd175f6 | |||
| ffbecaa31d | |||
| e26df437c5 |
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sat Apr 25 06:42:01 HKT 2026
|
#Sat Apr 25 20:05:35 HKT 2026
|
||||||
stageCount=3
|
stageCount=4
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.0
|
baseVersion=15.0
|
||||||
publishVersion=15.0.2
|
publishVersion=15.0.3
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.0.3
|
baseBetaVersion=15.0.4
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public class AlbumActivity extends AppCompatActivity {
|
|||||||
recyclerView = findViewById(R.id.recycler_view);
|
recyclerView = findViewById(R.id.recycler_view);
|
||||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
|
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
|
||||||
adapter = new ImageAdapter();
|
adapter = new ImageAdapter();
|
||||||
|
adapter.setContext(this);
|
||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
adapter.setOnImageClickListener(new OnImageClickListener() {
|
adapter.setOnImageClickListener(new OnImageClickListener() {
|
||||||
@@ -149,5 +150,8 @@ public class AlbumActivity extends AppCompatActivity {
|
|||||||
if (checkPermission()) {
|
if (checkPermission()) {
|
||||||
loadImages();
|
loadImages();
|
||||||
}
|
}
|
||||||
|
if (adapter != null) {
|
||||||
|
adapter.refreshBg();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20,6 +20,21 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
|||||||
public static final String TAG = "AlbumAdapter";
|
public static final String TAG = "AlbumAdapter";
|
||||||
private ArrayList<Album> albums = new ArrayList<>();
|
private ArrayList<Album> albums = new ArrayList<>();
|
||||||
private OnAlbumClickListener listener;
|
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 {
|
public interface OnAlbumClickListener {
|
||||||
void onAlbumClick(Album album);
|
void onAlbumClick(Album album);
|
||||||
@@ -34,6 +49,18 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
|||||||
LogUtils.d(TAG, "setData: " + albums.size() + " albums");
|
LogUtils.d(TAG, "setData: " + albums.size() + " albums");
|
||||||
notifyDataSetChanged();
|
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
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
@@ -48,6 +75,8 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
|
|||||||
final Album album = albums.get(position);
|
final Album album = albums.get(position);
|
||||||
LogUtils.d(TAG, "bind: " + album.getName() + ", cover=" + album.getCoverUri());
|
LogUtils.d(TAG, "bind: " + album.getName() + ", cover=" + album.getCoverUri());
|
||||||
|
|
||||||
|
holder.coverImage.setBackgroundResource(getBgRes());
|
||||||
|
|
||||||
holder.albumName.setText(album.getName());
|
holder.albumName.setText(album.getName());
|
||||||
holder.imageCount.setText(album.getImageCount() + " photos");
|
holder.imageCount.setText(album.getImageCount() + " photos");
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,21 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder>
|
|||||||
private ArrayList<Uri> imageUrls = new ArrayList<>();
|
private ArrayList<Uri> imageUrls = new ArrayList<>();
|
||||||
private ArrayList<String> imagePaths = new ArrayList<>();
|
private ArrayList<String> imagePaths = new ArrayList<>();
|
||||||
private OnImageClickListener listener;
|
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 {
|
public interface OnImageClickListener {
|
||||||
void onImageClick(int position, ArrayList<Uri> urls, ArrayList<String> paths);
|
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");
|
LogUtils.d(TAG, "setData: " + urls.size() + " images");
|
||||||
notifyDataSetChanged();
|
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
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
@@ -44,6 +71,8 @@ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
|
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
|
||||||
|
holder.imageView.setBackgroundResource(getBgRes());
|
||||||
|
|
||||||
Glide.with(holder.imageView.getContext())
|
Glide.with(holder.imageView.getContext())
|
||||||
.load(imageUrls.get(position))
|
.load(imageUrls.get(position))
|
||||||
.centerCrop()
|
.centerCrop()
|
||||||
|
|||||||
@@ -16,10 +16,25 @@ import cc.winboll.studio.libappbase.LogUtils;
|
|||||||
public class ImagePagerAdapter extends PagerAdapter {
|
public class ImagePagerAdapter extends PagerAdapter {
|
||||||
public static final String TAG = "ImagePagerAdapter";
|
public static final String TAG = "ImagePagerAdapter";
|
||||||
private ArrayList<Uri> imageUrls;
|
private ArrayList<Uri> imageUrls;
|
||||||
|
private int bgType;
|
||||||
|
|
||||||
public ImagePagerAdapter(ArrayList<Uri> imageUrls) {
|
public ImagePagerAdapter(ArrayList<Uri> imageUrls, int bgType) {
|
||||||
this.imageUrls = imageUrls;
|
this.imageUrls = imageUrls;
|
||||||
LogUtils.d(TAG, "ImagePagerAdapter created with " + imageUrls.size() + " images");
|
this.bgType = bgType;
|
||||||
|
LogUtils.d(TAG, "ImagePagerAdapter created with " + imageUrls.size() + " images, bgType=" + bgType);
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -32,6 +47,7 @@ public class ImagePagerAdapter extends PagerAdapter {
|
|||||||
public Object instantiateItem(@NonNull ViewGroup container, int position) {
|
public Object instantiateItem(@NonNull ViewGroup container, int position) {
|
||||||
View view = LayoutInflater.from(container.getContext())
|
View view = LayoutInflater.from(container.getContext())
|
||||||
.inflate(R.layout.item_image_pager, container, false);
|
.inflate(R.layout.item_image_pager, container, false);
|
||||||
|
view.setBackgroundResource(getBgRes());
|
||||||
ImageView imageView = view.findViewById(R.id.image);
|
ImageView imageView = view.findViewById(R.id.image);
|
||||||
|
|
||||||
Glide.with(imageView.getContext())
|
Glide.with(imageView.getContext())
|
||||||
|
|||||||
@@ -33,8 +33,11 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha
|
|||||||
private ImageButton btnDelete;
|
private ImageButton btnDelete;
|
||||||
private ImageButton btnShare;
|
private ImageButton btnShare;
|
||||||
private ImageButton btnInfo;
|
private ImageButton btnInfo;
|
||||||
|
private ImageButton btnBg;
|
||||||
|
private int bgType = 0;
|
||||||
private GestureDetector gestureDetector;
|
private GestureDetector gestureDetector;
|
||||||
private TrashManager trashManager;
|
private TrashManager trashManager;
|
||||||
|
private Preferences prefs;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -49,6 +52,8 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha
|
|||||||
currentPosition = getIntent().getIntExtra(EXTRA_POSITION, 0);
|
currentPosition = getIntent().getIntExtra(EXTRA_POSITION, 0);
|
||||||
|
|
||||||
trashManager = new TrashManager(this);
|
trashManager = new TrashManager(this);
|
||||||
|
prefs = new Preferences(this);
|
||||||
|
bgType = prefs.getBgType();
|
||||||
|
|
||||||
viewPager = findViewById(R.id.view_pager);
|
viewPager = findViewById(R.id.view_pager);
|
||||||
toolbar = findViewById(R.id.toolbar);
|
toolbar = findViewById(R.id.toolbar);
|
||||||
@@ -56,8 +61,11 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha
|
|||||||
btnDelete = findViewById(R.id.btn_delete);
|
btnDelete = findViewById(R.id.btn_delete);
|
||||||
btnShare = findViewById(R.id.btn_share);
|
btnShare = findViewById(R.id.btn_share);
|
||||||
btnInfo = findViewById(R.id.btn_info);
|
btnInfo = findViewById(R.id.btn_info);
|
||||||
|
btnBg = findViewById(R.id.btn_bg);
|
||||||
|
|
||||||
ImagePagerAdapter adapter = new ImagePagerAdapter(imageUrls);
|
applyBg();
|
||||||
|
|
||||||
|
ImagePagerAdapter adapter = new ImagePagerAdapter(imageUrls, bgType);
|
||||||
viewPager.setAdapter(adapter);
|
viewPager.setAdapter(adapter);
|
||||||
viewPager.setCurrentItem(currentPosition);
|
viewPager.setCurrentItem(currentPosition);
|
||||||
viewPager.addOnPageChangeListener(this);
|
viewPager.addOnPageChangeListener(this);
|
||||||
@@ -104,6 +112,13 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha
|
|||||||
showImageInfo();
|
showImageInfo();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
btnBg.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
switchBg();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toggleToolbar() {
|
private void toggleToolbar() {
|
||||||
@@ -114,6 +129,52 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void applyBg() {
|
||||||
|
int bgRes;
|
||||||
|
switch (bgType) {
|
||||||
|
case 0:
|
||||||
|
bgRes = R.drawable.bg_checkerboard;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
bgRes = R.drawable.bg_white;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
bgRes = R.drawable.bg_black;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
bgRes = R.drawable.bg_checkerboard;
|
||||||
|
}
|
||||||
|
View container = findViewById(R.id.container);
|
||||||
|
if (container != null) {
|
||||||
|
container.setBackgroundResource(bgRes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void switchBg() {
|
||||||
|
final String[] bgNames = {"灰白相间", "全白", "全黑"};
|
||||||
|
final int[] bgResources = {R.drawable.bg_checkerboard, R.drawable.bg_white, R.drawable.bg_black};
|
||||||
|
|
||||||
|
new AlertDialog.Builder(this)
|
||||||
|
.setTitle("选择背景")
|
||||||
|
.setSingleChoiceItems(bgNames, bgType, new android.content.DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(android.content.DialogInterface dialog, int which) {
|
||||||
|
bgType = which;
|
||||||
|
prefs.setBgType(which);
|
||||||
|
int currentItem = viewPager.getCurrentItem();
|
||||||
|
View container = findViewById(R.id.container);
|
||||||
|
if (container != null) {
|
||||||
|
container.setBackgroundResource(bgResources[which]);
|
||||||
|
}
|
||||||
|
viewPager.setAdapter(new ImagePagerAdapter(imageUrls, bgType));
|
||||||
|
viewPager.setCurrentItem(currentItem);
|
||||||
|
dialog.dismiss();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.setNegativeButton("取消", null)
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
|
||||||
private void showDeleteDialog() {
|
private void showDeleteDialog() {
|
||||||
new AlertDialog.Builder(this)
|
new AlertDialog.Builder(this)
|
||||||
.setMessage("Delete to trash?")
|
.setMessage("Delete to trash?")
|
||||||
@@ -178,7 +239,7 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha
|
|||||||
if (currentPosition >= imageUrls.size()) {
|
if (currentPosition >= imageUrls.size()) {
|
||||||
currentPosition = imageUrls.size() - 1;
|
currentPosition = imageUrls.size() - 1;
|
||||||
}
|
}
|
||||||
viewPager.setAdapter(new ImagePagerAdapter(imageUrls));
|
viewPager.setAdapter(new ImagePagerAdapter(imageUrls, bgType));
|
||||||
viewPager.setCurrentItem(currentPosition);
|
viewPager.setCurrentItem(currentPosition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
recyclerView = findViewById(R.id.recycler_view);
|
recyclerView = findViewById(R.id.recycler_view);
|
||||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
|
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
|
||||||
adapter = new AlbumAdapter();
|
adapter = new AlbumAdapter();
|
||||||
|
adapter.setContext(this);
|
||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
adapter.setOnAlbumClickListener(new OnAlbumClickListener() {
|
adapter.setOnAlbumClickListener(new OnAlbumClickListener() {
|
||||||
@@ -244,6 +245,9 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
scanMediaStore();
|
scanMediaStore();
|
||||||
loadAlbums();
|
loadAlbums();
|
||||||
}
|
}
|
||||||
|
if (adapter != null) {
|
||||||
|
adapter.refreshBg();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void scanMediaStore() {
|
private void scanMediaStore() {
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ public class Preferences {
|
|||||||
public static final String TAG = "Preferences";
|
public static final String TAG = "Preferences";
|
||||||
private static final String PREF_NAME = "gallery_prefs";
|
private static final String PREF_NAME = "gallery_prefs";
|
||||||
private static final String KEY_FOLDER_PATH = "folder_path";
|
private static final String KEY_FOLDER_PATH = "folder_path";
|
||||||
|
private static final String KEY_BG_TYPE = "bg_type";
|
||||||
|
private static final int DEFAULT_BG_TYPE = 0;
|
||||||
private static final String DEFAULT_PATH = "/storage/emulated/0/Pictures/Gallery/owner";
|
private static final String DEFAULT_PATH = "/storage/emulated/0/Pictures/Gallery/owner";
|
||||||
|
|
||||||
public static String getDefaultPath() {
|
public static String getDefaultPath() {
|
||||||
@@ -30,4 +32,13 @@ public class Preferences {
|
|||||||
LogUtils.d(TAG, "setFolderPath: " + path);
|
LogUtils.d(TAG, "setFolderPath: " + path);
|
||||||
prefs.edit().putString(KEY_FOLDER_PATH, path).apply();
|
prefs.edit().putString(KEY_FOLDER_PATH, path).apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getBgType() {
|
||||||
|
return prefs.getInt(KEY_BG_TYPE, DEFAULT_BG_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBgType(int type) {
|
||||||
|
LogUtils.d(TAG, "setBgType: " + type);
|
||||||
|
prefs.edit().putInt(KEY_BG_TYPE, type).apply();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
5
gallery/src/main/res/drawable/bg_black.xml
Normal file
5
gallery/src/main/res/drawable/bg_black.xml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="#000000"/>
|
||||||
|
</shape>
|
||||||
30
gallery/src/main/res/drawable/bg_checkerboard.xml
Normal file
30
gallery/src/main/res/drawable/bg_checkerboard.xml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="10dp"
|
||||||
|
android:height="10dp"
|
||||||
|
android:viewportWidth="10"
|
||||||
|
android:viewportHeight="10">
|
||||||
|
<path
|
||||||
|
android:fillColor="#808080"
|
||||||
|
android:pathData="M0,0h1v1h-1z M2,0h1v1h-1z M4,0h1v1h-1z M6,0h1v1h-1z M8,0h1v1h-1z
|
||||||
|
M1,1h1v1h-1z M3,1h1v1h-1z M5,1h1v1h-1z M7,1h1v1h-1z M9,1h1v1h-1z
|
||||||
|
M0,2h1v1h-1z M2,2h1v1h-1z M4,2h1v1h-1z M6,2h1v1h-1z M8,2h1v1h-1z
|
||||||
|
M1,3h1v1h-1z M3,3h1v1h-1z M5,3h1v1h-1z M7,3h1v1h-1z M9,3h1v1h-1z
|
||||||
|
M0,4h1v1h-1z M2,4h1v1h-1z M4,4h1v1h-1z M6,4h1v1h-1z M8,4h1v1h-1z
|
||||||
|
M1,5h1v1h-1z M3,5h1v1h-1z M5,5h1v1h-1z M7,5h1v1h-1z M9,5h1v1h-1z
|
||||||
|
M0,6h1v1h-1z M2,6h1v1h-1z M4,6h1v1h-1z M6,6h1v1h-1z M8,6h1v1h-1z
|
||||||
|
M1,7h1v1h-1z M3,7h1v1h-1z M5,7h1v1h-1z M7,7h1v1h-1z M9,7h1v1h-1z
|
||||||
|
M0,8h1v1h-1z M2,8h1v1h-1z M4,8h1v1h-1z M6,8h1v1h-1z M8,8h1v1h-1z
|
||||||
|
M1,9h1v1h-1z M3,9h1v1h-1z M5,9h1v1h-1z M7,9h1v1h-1z M9,9h1v1h-1z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:pathData="M1,0h1v1h-1z M3,0h1v1h-1z M5,0h1v1h-1z M7,0h1v1h-1z M9,0h1v1h-1z
|
||||||
|
M0,1h1v1h-1z M2,1h1v1h-1z M4,1h1v1h-1z M6,1h1v1h-1z M8,1h1v1h-1z
|
||||||
|
M1,2h1v1h-1z M3,2h1v1h-1z M5,2h1v1h-1z M7,2h1v1h-1z M9,2h1v1h-1z
|
||||||
|
M0,3h1v1h-1z M2,3h1v1h-1z M4,3h1v1h-1z M6,3h1v1h-1z M8,3h1v1h-1z
|
||||||
|
M1,4h1v1h-1z M3,4h1v1h-1z M5,4h1v1h-1z M7,4h1v1h-1z M9,4h1v1h-1z
|
||||||
|
M0,5h1v1h-1z M2,5h1v1h-1z M4,5h1v1h-1z M6,5h1v1h-1z M8,5h1v1h-1z
|
||||||
|
M1,6h1v1h-1z M3,6h1v1h-1z M5,6h1v1h-1z M7,6h1v1h-1z M9,6h1v1h-1z
|
||||||
|
M0,7h1v1h-1z M2,7h1v1h-1z M4,7h1v1h-1z M6,7h1v1h-1z M8,7h1v1h-1z
|
||||||
|
M1,8h1v1h-1z M3,8h1v1h-1z M5,8h1v1h-1z M7,8h1v1h-1z M9,8h1v1h-1z
|
||||||
|
M0,9h1v1h-1z M2,9h1v1h-1z M4,9h1v1h-1z M6,9h1v1h-1z M8,9h1v1h-1z"/>
|
||||||
|
</vector>
|
||||||
5
gallery/src/main/res/drawable/bg_white.xml
Normal file
5
gallery/src/main/res/drawable/bg_white.xml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="#FFFFFF"/>
|
||||||
|
</shape>
|
||||||
12
gallery/src/main/res/drawable/ic_bg.xml
Normal file
12
gallery/src/main/res/drawable/ic_bg.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:pathData="M4,4h7v7h-7z M13,4h7v7h-7z M4,13h7v7h-7z M13,13h7v7h-7z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#808080"
|
||||||
|
android:pathData="M11,4h2v7h-2z M4,11h7v2h-7z M13,11h7v2h-7z M11,13h2v7h-2z M13,4h2v7h-2z M4,13h7v2h-7z"/>
|
||||||
|
</vector>
|
||||||
@@ -52,6 +52,14 @@
|
|||||||
android:src="@drawable/ic_info"
|
android:src="@drawable/ic_info"
|
||||||
android:contentDescription="Info"/>
|
android:contentDescription="Info"/>
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/btn_bg"
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:src="@drawable/ic_bg"
|
||||||
|
android:contentDescription="Background"/>
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/btn_delete"
|
android:id="@+id/btn_delete"
|
||||||
android:layout_width="48dp"
|
android:layout_width="48dp"
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
<FrameLayout
|
<FrameLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:background="@color/black">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/image"
|
android:id="@+id/image"
|
||||||
|
|||||||
Reference in New Issue
Block a user