minefragment完善
This commit is contained in:
parent
79ac7c5b0d
commit
8b9ba1c7b2
|
@ -38,4 +38,10 @@ dependencies {
|
||||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
|
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
|
||||||
implementation ("com.geyifeng.immersionbar:immersionbar:3.2.2")
|
implementation ("com.geyifeng.immersionbar:immersionbar:3.2.2")
|
||||||
implementation ("com.geyifeng.immersionbar:immersionbar-components:3.2.2")
|
implementation ("com.geyifeng.immersionbar:immersionbar-components:3.2.2")
|
||||||
|
|
||||||
|
implementation ("io.github.lucksiege:pictureselector:v3.11.2")
|
||||||
|
implementation ("io.github.lucksiege:compress:v3.11.2")
|
||||||
|
implementation ("io.github.lucksiege:ucrop:v3.11.2")
|
||||||
|
implementation ("io.github.lucksiege:camerax:v3.11.2")
|
||||||
|
implementation ("com.github.bumptech.glide:glide:4.15.1")
|
||||||
}
|
}
|
|
@ -1,6 +1,33 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||||
|
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||||
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||||
|
|
||||||
|
|
||||||
|
<queries package="${applicationId}">
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.media.action.IMAGE_CAPTURE">
|
||||||
|
|
||||||
|
</action>
|
||||||
|
</intent>
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.media.action.ACTION_VIDEO_CAPTURE">
|
||||||
|
|
||||||
|
</action>
|
||||||
|
</intent>
|
||||||
|
</queries>
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
package com.hnucm.weather;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||||
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||||
|
import com.luck.picture.lib.engine.ImageEngine;
|
||||||
|
import com.luck.picture.lib.utils.ActivityCompatHelper;
|
||||||
|
|
||||||
|
|
||||||
|
public class GlideEngine implements ImageEngine {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载图片
|
||||||
|
*
|
||||||
|
* @param context 上下文
|
||||||
|
* @param url 资源url
|
||||||
|
* @param imageView 图片承载控件
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void loadImage(Context context, String url, ImageView imageView) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.load(url)
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void loadImage(Context context, ImageView imageView, String url, int maxWidth, int maxHeight) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.load(url)
|
||||||
|
.override(maxWidth, maxHeight)
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载相册目录封面
|
||||||
|
*
|
||||||
|
* @param context 上下文
|
||||||
|
* @param url 图片路径
|
||||||
|
* @param imageView 承载图片ImageView
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void loadAlbumCover(Context context, String url, ImageView imageView) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.asBitmap()
|
||||||
|
.load(url)
|
||||||
|
.override(180, 180)
|
||||||
|
.sizeMultiplier(0.5f)
|
||||||
|
.transform(new CenterCrop(), new RoundedCorners(8))
|
||||||
|
.placeholder(R.drawable.ic_launcher_background)
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载图片列表图片
|
||||||
|
*
|
||||||
|
* @param context 上下文
|
||||||
|
* @param url 图片路径
|
||||||
|
* @param imageView 承载图片ImageView
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void loadGridImage(Context context, String url, ImageView imageView) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.load(url)
|
||||||
|
.override(200, 200)
|
||||||
|
.centerCrop()
|
||||||
|
.placeholder(R.drawable.ic_launcher_background)
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pauseRequests(Context context) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context).pauseRequests();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resumeRequests(Context context) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context).resumeRequests();
|
||||||
|
}
|
||||||
|
|
||||||
|
private GlideEngine() {
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final class InstanceHolder {
|
||||||
|
static final GlideEngine instance = new GlideEngine();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GlideEngine createGlideEngine() {
|
||||||
|
return InstanceHolder.instance;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package com.hnucm.weather;
|
package com.hnucm.weather;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
@ -8,6 +9,16 @@ import androidx.fragment.app.Fragment;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
import com.bumptech.glide.Glide;
|
||||||
|
import com.luck.picture.lib.basic.PictureSelector;
|
||||||
|
import com.luck.picture.lib.config.SelectMimeType;
|
||||||
|
import com.luck.picture.lib.entity.LocalMedia;
|
||||||
|
import com.luck.picture.lib.interfaces.OnResultCallbackListener;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class MineFragment extends Fragment {
|
public class MineFragment extends Fragment {
|
||||||
@Override
|
@Override
|
||||||
|
@ -28,6 +39,30 @@ public class MineFragment extends Fragment {
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
ImageView imageView = view.findViewById(R.id.imageView47);
|
||||||
|
imageView.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
PictureSelector.create(MineFragment.this)
|
||||||
|
.openGallery(SelectMimeType.ofImage())
|
||||||
|
.setImageEngine(GlideEngine.createGlideEngine())
|
||||||
|
.forResult(new OnResultCallbackListener<LocalMedia>() {
|
||||||
|
@Override
|
||||||
|
public void onResult(ArrayList<LocalMedia> result) {
|
||||||
|
//result.get(0).getRealPath();
|
||||||
|
Glide.with(MineFragment.this)
|
||||||
|
.load(Uri.fromFile(new File(result.get(0).getRealPath())))
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
imageView.setImageResource(R.drawable.circle_shape);
|
||||||
|
}
|
||||||
|
});
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
<solid android:color="#FFFFFF"/> <!-- 背景颜色 -->
|
||||||
|
</shape>
|
Binary file not shown.
After Width: | Height: | Size: 216 B |
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
|
@ -155,12 +155,11 @@
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/linearLayout5"
|
android:id="@+id/linearLayout5"
|
||||||
android:layout_width="380dp"
|
android:layout_width="370dp"
|
||||||
android:layout_height="200dp"
|
android:layout_height="200dp"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:background="@drawable/rounded_corners6"
|
android:background="@drawable/rounded_corners6"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/linearLayout4"
|
|
||||||
app:layout_constraintStart_toStartOf="@+id/linearLayout2"
|
app:layout_constraintStart_toStartOf="@+id/linearLayout2"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/linearLayout2">
|
app:layout_constraintTop_toBottomOf="@+id/linearLayout2">
|
||||||
|
|
||||||
|
@ -272,7 +271,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:text="晾晒指数"
|
android:text="晾晒指数"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="15dp"
|
android:textSize="20dp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
android:layout_marginTop="-10dp"
|
android:layout_marginTop="-10dp"
|
||||||
android:src="@drawable/test14"
|
android:src="@drawable/test14"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
@ -512,16 +513,37 @@
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView45"
|
||||||
|
android:layout_width="44dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginEnd="-24dp"
|
||||||
|
android:src="@drawable/img_31"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/imageView47"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/imageView47" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/rounded_button"
|
android:id="@+id/rounded_button"
|
||||||
android:layout_width="381dp"
|
android:layout_width="381dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="20dp"
|
||||||
android:backgroundTint="#E6EDFF"
|
android:backgroundTint="#E6EDFF"
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:text="退出登录"
|
android:text="退出登录"
|
||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/linearLayout4" />
|
app:layout_constraintTop_toBottomOf="@+id/linearLayout4" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/imageView47"
|
||||||
|
android:layout_width="82dp"
|
||||||
|
android:layout_height="86dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:background="@drawable/circle_shape"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:src="@drawable/img_32" />
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue