Skip to content

Commit 5d06e0b

Browse files
committed
全新改版,采用activity实现
1 parent cf913d2 commit 5d06e0b

File tree

17 files changed

+576
-455
lines changed

17 files changed

+576
-455
lines changed

app/build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ android {
55
buildToolsVersion "26.0.1"
66
defaultConfig {
77
applicationId "com.liyi.example"
8-
minSdkVersion 14
8+
minSdkVersion 21
99
targetSdkVersion 26
1010
versionCode 1
11-
versionName "1.0"
11+
versionName "1.0.0"
1212
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1313
}
1414
buildTypes {
@@ -28,5 +28,7 @@ dependencies {
2828
exclude group: 'com.android.support', module: 'support-annotations'
2929
})
3030
compile 'com.github.albert-lii:AutoGridView:1.0.0'
31+
implementation 'com.github.bumptech.glide:glide:4.1.1'
32+
annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'
3133
implementation project(':image-viewer')
3234
}

app/src/main/AndroidManifest.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.liyi.example">
44

5+
<uses-permission android:name="android.permission.INTERNET" />
6+
57
<application
68
android:allowBackup="true"
79
android:icon="@mipmap/ic_launcher"
@@ -16,6 +18,10 @@
1618
<category android:name="android.intent.category.LAUNCHER" />
1719
</intent-filter>
1820
</activity>
19-
</application>
2021

22+
<activity
23+
android:name="com.liyi.viewer.view.ImagePreviewActivity"
24+
android:launchMode="singleTask"
25+
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
26+
</application>
2127
</manifest>
Lines changed: 60 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,99 @@
11
package com.liyi.example;
22

3-
import android.graphics.Rect;
3+
import android.content.Context;
4+
import android.graphics.Color;
45
import android.os.Bundle;
56
import android.support.annotation.Nullable;
67
import android.support.v7.app.AppCompatActivity;
8+
import android.view.Gravity;
79
import android.view.LayoutInflater;
810
import android.view.View;
911
import android.view.ViewGroup;
10-
import android.view.Window;
1112
import android.view.WindowManager;
1213
import android.widget.ImageView;
1314

15+
import com.bumptech.glide.Glide;
1416
import com.liyi.autogrid.AutoGridView;
1517
import com.liyi.autogrid.BaseGridAdapter;
1618
import com.liyi.viewer.ImageViewer;
19+
import com.liyi.viewer.data.ViewData;
1720

1821
import java.util.ArrayList;
19-
import java.util.List;
2022

2123

2224
/**
2325
* Created by albertlii on 2017/9/20.
2426
*/
2527
public class PicActivity extends AppCompatActivity {
2628
private AutoGridView autoGridView;
27-
private List<Integer> mList = new ArrayList<>();
28-
private List<Rect> mRects = new ArrayList<>();
2929

3030
private ImageViewer imageViewer;
31+
private ArrayList<Object> mImageDatas;
32+
private ArrayList<ViewData> mViewDatas;
3133

3234
@Override
3335
protected void onCreate(@Nullable Bundle savedInstanceState) {
3436
super.onCreate(savedInstanceState);
35-
// 取消标题
36-
requestWindowFeature(Window.FEATURE_NO_TITLE);
37-
// 取消状态栏
3837
getWindow().setFlags(
3938
WindowManager.LayoutParams.FLAG_FULLSCREEN,
4039
WindowManager.LayoutParams.FLAG_FULLSCREEN);
4140
setContentView(R.layout.activity_pic);
41+
initUI();
42+
addListener();
43+
}
4244

45+
private void initUI() {
4346
autoGridView = (AutoGridView) findViewById(R.id.autogridview);
4447

45-
mList.add(R.drawable.langman);
46-
mList.add(R.drawable.huaijiu);
47-
mList.add(R.drawable.landiao);
48-
mList.add(R.drawable.fennen);
49-
mList.add(R.drawable.heibai);
50-
48+
generateData();
5149
autoGridView.setAdapter(new MyAdapter());
50+
51+
imageViewer = ImageViewer.newInstance().indexPos(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL).imageData(mImageDatas);
52+
mViewDatas = new ArrayList<>();
53+
}
54+
55+
private void addListener() {
5256
autoGridView.setOnItemClickListener(new AutoGridView.OnItemClickListener() {
5357
@Override
5458
public void onItemClick(int i, View view) {
55-
mRects.clear();
59+
mViewDatas.clear();
5660
for (int j = 0; j < autoGridView.getChildCount(); j++) {
5761
int[] location = new int[2];
5862
// 获取在整个屏幕内的绝对坐标
5963
autoGridView.getChildAt(j).getLocationOnScreen(location);
60-
mRects.add(new Rect(location[0], location[1],
61-
location[0] + autoGridView.getChildAt(i).getMeasuredWidth(),
62-
location[1] + autoGridView.getChildAt(i).getMeasuredHeight()));
63-
}
64-
if (imageViewer == null) {
65-
imageViewer = ImageViewer.newInstance();
64+
ViewData viewData = new ViewData();
65+
viewData.x = location[0];
66+
viewData.y = location[1];
67+
viewData.width = autoGridView.getChildAt(j).getMeasuredWidth();
68+
viewData.height = autoGridView.getChildAt(j).getMeasuredHeight();
69+
mViewDatas.add(viewData);
6670
}
67-
imageViewer.setLocations(mRects)
68-
.setIndexGravity(ImageViewer.BOTTOM)
69-
.setResources(i, mList, PicActivity.this)
70-
.show(getSupportFragmentManager(), "pic");
71+
imageViewer.beginIndex(i)
72+
.viewData(mViewDatas)
73+
.show(PicActivity.this);
7174
}
7275
});
7376
}
7477

78+
private void generateData() {
79+
mImageDatas = new ArrayList<>();
80+
String url0 = "http://img5.duitang.com/uploads/item/201404/11/20140411214939_XswXa.jpeg";
81+
String url1 = "http://att.bbs.duowan.com/forum/201210/20/210446opy9p5pghu015p9u.jpg";
82+
String url2 = "https://b-ssl.duitang.com/uploads/item/201505/09/20150509221719_kyNrM.jpeg";
83+
String url3 = "https://b-ssl.duitang.com/uploads/item/201709/26/20170926131419_8YhLA.jpeg";
84+
String url4 = "https://b-ssl.duitang.com/uploads/item/201505/11/20150511122951_MAwVZ.jpeg";
85+
mImageDatas.add(url0);
86+
mImageDatas.add(url1);
87+
mImageDatas.add(url2);
88+
mImageDatas.add(url3);
89+
mImageDatas.add(url4);
90+
}
91+
7592
private class MyAdapter extends BaseGridAdapter {
7693

7794
@Override
7895
public int getCount() {
79-
return mList == null ? 0 : mList.size();
96+
return mImageDatas != null ? mImageDatas.size() : 0;
8097
}
8198

8299
@Override
@@ -90,12 +107,28 @@ public View getView(int i, View view, ViewGroup viewGroup) {
90107
} else {
91108
holder = (ItemHolder) view.getTag();
92109
}
93-
holder.iv_grid.setImageResource(mList.get(i));
110+
Glide.with(PicActivity.this)
111+
.load(mImageDatas.get(i))
112+
.into(holder.iv_grid);
94113
return view;
95114
}
96115

97116
private class ItemHolder {
98117
private ImageView iv_grid;
99118
}
100119
}
120+
121+
/**
122+
* 获取状态栏的高度
123+
*
124+
* @return
125+
*/
126+
public static int getStatusBarHeight(Context context) {
127+
int result = 0;
128+
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
129+
if (resourceId > 0) {
130+
result = context.getResources().getDimensionPixelSize(resourceId);
131+
}
132+
return result;
133+
}
101134
}

app/src/main/res/layout/activity_pic.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
android:layout_width="match_parent"
44
android:layout_height="match_parent"
5-
android:gravity="center"
65
android:orientation="vertical">
76

87
<com.liyi.autogrid.AutoGridView

app/src/main/res/layout/item_auto_grid.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
<ImageView
88
android:id="@+id/iv_item_grid"
9+
android:background="@color/white"
910
android:layout_width="match_parent"
1011
android:layout_height="match_parent"
1112
android:scaleType="centerCrop" />

app/src/main/res/values/styles.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@
77
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
88
<item name="colorAccent">@color/colorAccent</item>
99
</style>
10-
1110
</resources>

image-viewer/build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
defaultConfig {
1111
minSdkVersion 11
1212
targetSdkVersion 25
13-
versionCode 1
14-
versionName "1.0.0"
13+
versionCode 2
14+
versionName "1.0.1"
1515

1616
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1717

@@ -34,4 +34,6 @@ dependencies {
3434
exclude group: 'com.android.support', module: 'support-annotations'
3535
})
3636
implementation 'com.github.chrisbanes.photoview:library:+'
37+
implementation 'com.github.bumptech.glide:glide:4.1.1'
38+
annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'
3739
}

image-viewer/proguard-rules.pro

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,14 @@
1919
# If you keep the line number information, uncomment this to
2020
# hide the original source file name.
2121
#-renamesourcefileattribute SourceFile
22+
23+
#Glide
24+
-keep public class * implements com.bumptech.glide.module.GlideModule
25+
-keep public class * extends com.bumptech.glide.AppGlideModule
26+
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
27+
**[] $VALUES;
28+
public *;
29+
}
30+
31+
# for DexGuard only
32+
-keepresourcexmlelements manifest/application/meta-data@value=GlideModule
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
package="com.liyi.viewer" />
2+
package="com.liyi.viewer">
3+
4+
<uses-permission android:name="android.permission.INTERNET" />
5+
</manifest>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.liyi.viewer;
2+
3+
4+
public final class ImageDefine {
5+
public static final String BEGIN_INDEX = "begin_index";
6+
public static final String VIEW_ARRAY = "view_array";
7+
public static final String IMAGE_ARRAY = "image_array";
8+
public static final String INDEX_GRAVITY = "index_gravity";
9+
}

image-viewer/src/main/java/com/liyi/viewer/ImageLoader.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)