我在回收者视图中有一些活动与一些图像 . 我想将它们作为 Profiles 图片上传到firebase存储中,但我不知道如何 . 我有一个带有2个图像视图的活动:第一个从手机图库上传图像,第二个在下面打开此活动 . 我的想法是:点击一个图像,它上传点击到firebase的图像,并在完成时返回上一个活动,因为用户也需要选择一个昵称 .
package it.evilsecret.evilsecretappfinal;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class ImageSelection extends AppCompatActivity {
private static final int CHOOSE_IMAGE = 101;
ImageView imageView;
RecyclerView recyclerView;
ImageAdapter imageAdapter;
List<Image> imageList;
ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.imageselectionpopup);
imageList = new ArrayList<>();
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
imageList.add(
new Image(R.drawable.alis, "Alis"));
imageList.add(
new Image(R.drawable.astaroth, "Astaroth"));
imageList.add(
new Image(R.drawable.chris, "Chris"));
imageList.add(
new Image(R.drawable.sarah, "Sarah"));
imageList.add(
new Image(R.drawable.vanessa, "Vanessa"));
imageAdapter = new ImageAdapter(this, imageList);
recyclerView.setAdapter(imageAdapter);
2 回答
为此,您必须将图像转换为位图(convert image to bitmap)然后压缩它 . 之后你必须将它上传到firebase Cloud link to firebase cloud
首先转换为位图...
压缩它以减小其尺寸......
请参阅此链接.. https://www.simplifiedcoding.net/firebase-storage-tutorial-android/