Skip to content

Commit cade510

Browse files
committed
添加头像预览功能
1 parent a74c02f commit cade510

File tree

6 files changed

+95
-22
lines changed

6 files changed

+95
-22
lines changed

app/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ android {
1010
compileSdkVersion 28
1111
defaultConfig {
1212
applicationId "com.fmt.github"
13-
minSdkVersion 15
13+
minSdkVersion 16
1414
targetSdkVersion 28
1515
versionCode 7
1616
versionName "1.7"
@@ -96,6 +96,7 @@ dependencies {
9696
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0'
9797
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
9898
implementation 'com.lxj:xpopup:1.8.10-x'
99+
implementation 'com.github.chrisbanes:PhotoView:2.3.0@aar'
99100

100101
//bugly捕获异常
101102
implementation 'com.tencent.bugly:crashreport:latest.release'

app/src/main/AndroidManifest.xml

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,56 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:dist="http://schemas.android.com/apk/distribution"
4-
package="com.fmt.github">
3+
xmlns:dist="http://schemas.android.com/apk/distribution"
4+
package="com.fmt.github">
55

6-
<dist:module dist:instant="true"/>
7-
<uses-permission android:name="android.permission.INTERNET"/>
8-
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
9-
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
10-
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
11-
<uses-permission android:name="android.permission.READ_LOGS"/>
6+
<dist:module dist:instant="true" />
7+
8+
<uses-permission android:name="android.permission.INTERNET" />
9+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
10+
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
11+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
12+
<uses-permission android:name="android.permission.READ_LOGS" />
1213

1314
<application
15+
android:name=".App"
1416
android:allowBackup="true"
1517
android:icon="@mipmap/icon_launcher"
1618
android:label="@string/app_name"
1719
android:roundIcon="@mipmap/ic_launcher_round"
1820
android:supportsRtl="true"
19-
android:theme="@style/AppTheme"
20-
android:name=".App">
21+
android:theme="@style/AppTheme">
2122
<activity android:name=".WelcomeActivity">
2223
<intent-filter>
23-
<action android:name="android.intent.action.MAIN"/>
24+
<action android:name="android.intent.action.MAIN" />
2425

25-
<category android:name="android.intent.category.LAUNCHER"/>
26+
<category android:name="android.intent.category.LAUNCHER" />
2627
</intent-filter>
2728
</activity>
2829
<activity
2930
android:name=".user.activity.LoginActivity"
30-
android:screenOrientation="portrait"/>
31+
android:screenOrientation="portrait" />
3132
<activity
3233
android:name=".home.activity.HomeActivity"
3334
android:screenOrientation="portrait"
34-
android:theme="@style/ToolBarTheme"
35-
/>
35+
android:theme="@style/ToolBarTheme" />
3636

3737
<activity
3838
android:name=".home.activity.CommonSearchActivity"
39-
android:screenOrientation="portrait"/>
39+
android:screenOrientation="portrait" />
4040

4141
<activity
4242
android:name=".repos.activity.ReposDetailActivity"
43-
android:screenOrientation="portrait"/>
43+
android:screenOrientation="portrait" />
4444
<activity
4545
android:name=".user.activity.UserInfoActivity"
46-
android:screenOrientation="portrait"/>
46+
android:screenOrientation="portrait" />
4747
<activity
4848
android:name=".user.activity.AboutActivity"
49-
android:screenOrientation="portrait"/>
49+
android:screenOrientation="portrait" />
50+
<activity
51+
android:name=".user.activity.PhotoPreviewActivity"
52+
android:screenOrientation="portrait"
53+
android:theme="@style/FullScreenTheme" />
5054
</application>
5155

5256
</manifest>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.fmt.github.user.activity
2+
3+
import android.content.Context
4+
import android.content.Intent
5+
import com.fmt.github.R
6+
import com.fmt.github.base.activity.BaseDataBindActivity
7+
import com.fmt.github.databinding.ActivityPhotoPreviewBinding
8+
import kotlinx.android.synthetic.main.activity_photo_preview.*
9+
10+
class PhotoPreviewActivity : BaseDataBindActivity<ActivityPhotoPreviewBinding>() {
11+
12+
companion object {
13+
private const val IMAGE_URL = "image_url"
14+
15+
fun go2PhotoPreviewActivity(context: Context, url: String) {
16+
val intent = Intent(context, PhotoPreviewActivity::class.java)
17+
intent.putExtra(IMAGE_URL, url)
18+
context.startActivity(intent)
19+
}
20+
}
21+
22+
override fun getLayoutId(): Int = R.layout.activity_photo_preview
23+
24+
override fun initView() {
25+
mDataBind.url = intent.getStringExtra(IMAGE_URL)
26+
mPhotoView.setOnClickListener {
27+
finish()
28+
}
29+
}
30+
31+
override fun onBackPressed() {
32+
supportFinishAfterTransition()
33+
}
34+
}

app/src/main/java/com/fmt/github/user/activity/UserInfoActivity.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ class UserInfoActivity : BaseDataBindActivity<ActivityUserInfoBinding>() {
3030
private fun initUserInfo() {
3131
mUserModel = intent.getSerializableExtra(USER_INFO) as UserModel
3232
mDataBind.userModel = mUserModel
33+
mUserIconIv.setOnClickListener {
34+
PhotoPreviewActivity.go2PhotoPreviewActivity(this, mUserModel.avatar_url)
35+
}
3336
}
3437

3538
private fun initToolbar() {
@@ -44,8 +47,10 @@ class UserInfoActivity : BaseDataBindActivity<ActivityUserInfoBinding>() {
4447
add(UserReposFragment.newInstance(mUserModel.login))
4548
add(UserReposFragment.newInstance(mUserModel.login, true))
4649
}.apply {
47-
mViewPager.adapter = UserInfoPagerAdapter(supportFragmentManager, this,
48-
FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)
50+
mViewPager.adapter = UserInfoPagerAdapter(
51+
supportFragmentManager, this,
52+
FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
53+
)
4954
mTabLayout.setupWithViewPager(mViewPager)
5055
}
5156
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<layout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto">
4+
5+
<data>
6+
7+
<variable
8+
name="url"
9+
type="java.lang.String" />
10+
</data>
11+
12+
<LinearLayout
13+
android:layout_width="match_parent"
14+
android:layout_height="match_parent"
15+
android:background="@android:color/black"
16+
android:orientation="vertical">
17+
18+
<com.github.chrisbanes.photoview.PhotoView
19+
android:id="@+id/mPhotoView"
20+
android:transitionName="image"
21+
android:layout_width="match_parent"
22+
android:layout_height="match_parent"
23+
app:url="@{url}" />
24+
25+
</LinearLayout>
26+
</layout>

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,8 @@
3333
<item name="android:windowFullscreen">true</item>
3434
</style>
3535

36+
<style name="FullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
37+
<item name="android:windowFullscreen">true</item>
38+
</style>
3639

3740
</resources>

0 commit comments

Comments
 (0)