在新活动中打开firebase映像

时间:2018-01-24 21:30:14

标签: android listview firebase arraylist firebase-realtime-database

这是ImageListActivity,我想在另一个活动中打开图片。 但我不知道如何编码。 我需要一些帮助。

public class ImageListActivity extends AppCompatActivity {

    private DatabaseReference mDatabaseRef;
    private List<ImageUpload> imgList;
    private ListView lv;
    private ImageListAdapter adapter;
    private ProgressDialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_list);
        imgList = new ArrayList<>();
        lv = (ListView) findViewById(R.id.listViewImage);
        //Show progress dialog during list image loading
        progressDialog = new ProgressDialog(this);
        progressDialog.setMessage("Por favor aguarde...");
        progressDialog.show();

        mDatabaseRef = FirebaseDatabase.getInstance().getReference(MainActivity.FB_DATABASE_PATH);
        mDatabaseRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                progressDialog.dismiss();

                //Fetch imagem data from firebase database
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    //ImageUpload  class require default constructor
                    ImageUpload img = snapshot.getValue(ImageUpload.class);
                    imgList.add(img);
                }
                //Init adapter
                adapter = new ImageListAdapter(ImageListActivity.this, R.layout.image_item, imgList);
                //Set adapter for listview
                lv.setAdapter(adapter);
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
                progressDialog.dismiss();
            }
        });
    }
}

1 个答案:

答案 0 :(得分:1)

要完成此操作,您可以将图片保存到game,然后从其他活动中检索此图片,这样您就可以处理它并随意执行任何操作:

putExtra

在这里,您可以创建一个带有随机drawable的位图(您可以选择获取图像的方式),之后我将该图像放入带有“byteArray”键的putExtra中

在您的其他活动中执行此操作:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sticky_notes);// your bitmap
ByteArrayOutputStream bs = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bs);
intent.putExtra("byteArray", bs.toByteArray());

if(getIntent().hasExtra("byteArray") { ImageView imv= new ImageView(this); Bitmap bitmap = BitmapFactory.decodeByteArray(getIntent().getByteArrayExtra("byteArray"), 0, getIntent().getByteArrayExtra("byteArray").length); imv.setImageBitmap(bitmap); } 是您的imageView,您可以在其中放置图片。

所以在imv行 您获取图像,然后将该图像放入putExtra并将其检索到其他活动中。