Skip to content

Commit 7f4a934

Browse files
author
jenly1314
committed
简化集成步骤
1 parent d6c5704 commit 7f4a934

File tree

12 files changed

+101
-23
lines changed

12 files changed

+101
-23
lines changed

README.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@ ImageViewer for Android 是一个图片查看器,一般用来查看图片详
2424
<dependency>
2525
<groupId>com.king.image</groupId>
2626
<artifactId>imageviewer</artifactId>
27-
<version>1.0.0</version>
27+
<version>1.0.1</version>
2828
<type>pom</type>
2929
</dependency>
3030
```
3131
### Gradle:
3232
```gradle
33-
implementation 'com.king.image:imageviewer:1.0.0'
33+
implementation 'com.king.image:imageviewer:1.0.1'
3434
```
3535

3636
### Lvy:
3737
```lvy
38-
<dependency org='com.king.image' name='imageviewer' rev='1.0.0'>
38+
<dependency org='com.king.image' name='imageviewer' rev='1.0.1'>
3939
<artifact name='$AID' ext='pom'></artifact>
4040
</dependency>
4141
```
@@ -52,26 +52,28 @@ allprojects {
5252

5353
## 示例
5454

55-
### 配置
55+
### 代码示例
5656

57-
在您的主项目的**AndroidManifest**中注册**ImageViewerActivity**
57+
```Java
58+
//图片查看器 - 简单调用
5859

59-
```Xml
60-
<activity android:name="com.king.image.imageviewer.ImageViewerActivity"
61-
android:screenOrientation="portrait"
62-
android:theme="@style/ImageViewerTheme"/>
63-
```
60+
// data 可以多张图片List或单张图片,支持的类型可以是{@link Uri}, {@code url}, {@code path},{@link File}, {@link DrawableRes resId}…等
61+
ImageViewer.load(data)//要加载的图片数据,单张或多张
62+
.imageLoader(new GlideImageLoader())//加载器,imageLoader必须配置,目前内置的有GlideImageLoader或PicassoImageLoader,也可以自己实现
63+
.start(activity,sharedElement);//activity or fragment, 跳转时的共享元素视图
6464

65+
```
6566

66-
### 代码示例
6767
```Java
6868
//图片查看器
69-
// data 可以多张图片List或单张图片,支持的类型可以是{@link Uri}, {@code url}, {@code path},{@link File}, {@link DrawableRes resId}…等
7069

70+
// data 可以多张图片List或单张图片,支持的类型可以是{@link Uri}, {@code url}, {@code path},{@link File}, {@link DrawableRes resId}…等
7171
ImageViewer.load(data)//要加载的图片数据,单张或多张
7272
.selection(position)//当前选中位置,默认:0
7373
.indicator(true)//是否显示指示器,默认不显示
7474
.imageLoader(new GlideImageLoader())//加载器,imageLoader必须配置,目前内置的有GlideImageLoader或PicassoImageLoader,也可以自己实现
75+
.theme(R.style.ImageViewerTheme)//设置主题风格,默认:R.style.ImageViewerTheme
76+
.orientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)//设置屏幕方向,默认:ActivityInfo.SCREEN_ORIENTATION_BEHIND
7577
.start(activity,sharedElement);//activity or fragment, 跳转时的共享元素视图
7678

7779
```
@@ -92,6 +94,9 @@ allprojects {
9294

9395
## 版本记录
9496

97+
#### v1.0.1:2019-11-15
98+
* 简化集成步骤
99+
95100
#### v1.0.0:2019-11-7
96101
* ImageViewer初始版本
97102

app/release/app-release.apk

372 Bytes
Binary file not shown.

app/release/output.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
1+
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":2,"versionName":"1.0.1","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@
2525
</activity>
2626

2727
<activity android:name=".PhotoActivity"
28+
android:configChanges="keyboardHidden|orientation|screenSize"
2829
android:screenOrientation="portrait"/>
2930

3031
<activity android:name=".PhotoListActivity"
32+
android:configChanges="keyboardHidden|orientation|screenSize"
3133
android:screenOrientation="portrait"/>
3234

33-
<activity android:name="com.king.image.imageviewer.ImageViewerActivity"
34-
android:screenOrientation="portrait"
35-
android:theme="@style/ImageViewerTheme"/>
36-
3735
</application>
3836

3937
</manifest>

app/src/main/java/com/king/imageviewer/app/PhotoListActivity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.king.imageviewer.app;
22

3+
import android.content.pm.ActivityInfo;
34
import android.os.Bundle;
45
import android.view.View;
56

@@ -45,12 +46,15 @@ private void init(){
4546
@Override
4647
public void onClick(View v, int position) {
4748
//图片查看器
49+
4850
// data 可以多张图片List或单张图片,支持的类型可以是{@link Uri}, {@code url}, {@code path},{@link File}, {@link DrawableRes resId}…等
4951
ImageViewer.load(listData)//要加载的图片数据,单张或多张
5052
.selection(position)//当前选中位置
5153
.indicator(true)//是否显示指示器,默认不显示
5254
.imageLoader(new GlideImageLoader())//加载器,*必须配置,目前内置的有GlideImageLoader或PicassoImageLoader,也可以自己实现
5355
// .imageLoader(new PicassoImageLoader())
56+
.theme(R.style.ImageViewerTheme)//设置主题风格,默认:R.style.ImageViewerTheme
57+
.orientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)//设置屏幕方向,默认:ActivityInfo.SCREEN_ORIENTATION_BEHIND
5458
.start(PhotoListActivity.this,v);
5559
}
5660
});
Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
package="com.king.image.imageviewer" />
2+
package="com.king.image.imageviewer" >
3+
4+
<application>
5+
6+
<activity android:name="com.king.image.imageviewer.ImageViewerActivity"
7+
android:configChanges="keyboardHidden|orientation|screenSize"/>
8+
9+
</application>
10+
</manifest>

imageviewer/src/main/java/com/king/image/imageviewer/ImageViewer.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.Activity;
44
import android.content.Context;
55
import android.content.Intent;
6+
import android.content.pm.ActivityInfo;
67
import android.graphics.drawable.Drawable;
78
import android.net.Uri;
89
import android.os.Bundle;
@@ -17,6 +18,7 @@
1718
import androidx.annotation.DrawableRes;
1819
import androidx.annotation.NonNull;
1920
import androidx.annotation.Nullable;
21+
import androidx.annotation.StyleRes;
2022
import androidx.core.app.ActivityOptionsCompat;
2123
import androidx.core.content.ContextCompat;
2224
import androidx.fragment.app.Fragment;
@@ -100,6 +102,15 @@ public static ImageViewer load(@NonNull File file){
100102
return new ImageViewer(file);
101103
}
102104

105+
/**
106+
* 加载图片
107+
* @param data 支持{@link Uri}, {@code url}, {@code path},{@link File}, {@link DrawableRes resId}…等
108+
* @return
109+
*/
110+
public static ImageViewer load(@NonNull Object data){
111+
return new ImageViewer(data);
112+
}
113+
103114
/**
104115
* 当前选中位置
105116
* @param position 默认:0
@@ -184,6 +195,26 @@ public ImageViewer activityOptionsCompat(ActivityOptionsCompat optionsCompat){
184195
return this;
185196
}
186197

198+
/**
199+
* 设置屏幕方向
200+
* @param orientation 默认:{@link ActivityInfo#SCREEN_ORIENTATION_BEHIND}
201+
* @return
202+
*/
203+
public ImageViewer orientation(int orientation){
204+
this.mViewerSpec.orientation = orientation;
205+
return this;
206+
}
207+
208+
/**
209+
* 设置主题风格
210+
* @param theme 默认:{@link R.style#ImageViewerTheme}
211+
* @return
212+
*/
213+
public ImageViewer theme(@StyleRes int theme){
214+
this.mViewerSpec.theme = theme;
215+
return this;
216+
}
217+
187218
/**
188219
* 初始化资源
189220
* @param context

imageviewer/src/main/java/com/king/image/imageviewer/ImageViewerActivity.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.king.image.imageviewer;
22

33
import android.os.Bundle;
4+
import android.os.PersistableBundle;
45
import android.view.View;
56
import android.widget.TextView;
67

@@ -26,9 +27,17 @@ public class ImageViewerActivity extends AppCompatActivity {
2627

2728
private boolean isShowIndicator;
2829

30+
@Override
31+
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
32+
super.onCreate(savedInstanceState, persistentState);
33+
}
34+
2935
@Override
3036
protected void onCreate(@Nullable Bundle savedInstanceState) {
3137
super.onCreate(savedInstanceState);
38+
mViewerSpec = ViewerSpec.INSTANCE;
39+
setRequestedOrientation(mViewerSpec.orientation);
40+
setTheme(mViewerSpec.theme);
3241
setContentView(R.layout.image_viewer_activity);
3342
init();
3443
}
@@ -57,8 +66,6 @@ public void onPageScrollStateChanged(int state) {
5766
}
5867
});
5968

60-
mViewerSpec = ViewerSpec.INSTANCE;
61-
6269
ViewCompat.setTransitionName(viewPager,SHARED_ELEMENT);
6370

6471
mAdapter = new ImageViewerAdapter(mViewerSpec.listData);

imageviewer/src/main/java/com/king/image/imageviewer/ViewerSpec.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.king.image.imageviewer;
22

3+
import android.content.pm.ActivityInfo;
34
import android.graphics.drawable.Drawable;
45

56
import com.king.image.imageviewer.loader.ImageLoader;
67

78
import java.util.List;
89

910
import androidx.annotation.Nullable;
11+
import androidx.annotation.StyleRes;
1012

1113
/**
1214
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
@@ -15,7 +17,7 @@ enum ViewerSpec {
1517

1618
INSTANCE;
1719

18-
volatile int position;
20+
int position;
1921

2022
List<?> listData;
2123

@@ -29,13 +31,20 @@ enum ViewerSpec {
2931
@Nullable
3032
Drawable errorDrawable;
3133

34+
@StyleRes
35+
int theme = R.style.ImageViewerTheme;
36+
37+
int orientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
38+
3239
void reset(){
3340
position = 0;
3441
listData = null;
3542
imageLoader = null;
3643
isShowIndicator = false;
3744
placeholderDrawable = null;
3845
errorDrawable = null;
46+
theme = R.style.ImageViewerTheme;
47+
orientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
3948
}
4049

4150
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
4+
<style name="ImageViewerTheme" parent="Theme.AppCompat.Light.DarkActionBar">
5+
<item name="colorPrimaryDark">@color/ivColorPrimaryDark</item>
6+
<item name="windowNoTitle">true</item>
7+
<item name="windowActionBar">false</item>
8+
<item name="android:windowBackground">@color/ivWindowBackground</item>
9+
<item name="android:textSize">@dimen/ivTextSize</item>
10+
<item name="android:textColor">@color/ivTextColor</item>
11+
<item name="android:statusBarColor">@android:color/transparent</item>
12+
<item name="android:navigationBarColor">@android:color/transparent</item>
13+
</style>
14+
15+
</resources>

0 commit comments

Comments
 (0)