在新活动中打开火力基础图片



这是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();
            }
        });
    }
}
为此,

您可以将图像保存到 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());

在这里,您创建一个带有随机可绘制对象的位图(您可以选择如何获取图像(,然后我使用该键"byteArray"将该图像放入 putExtra 中

在您的其他活动中,请执行以下操作:

if(getIntent().hasExtra("byteArray")
{
    ImageView imv= new ImageView(this);
    Bitmap bitmap = BitmapFactory.decodeByteArray(getIntent().getByteArrayExtra("byteArray"), 0, getIntent().getByteArrayExtra("byteArray").length);
    imv.setImageBitmap(bitmap);
}

imv是您的图像视图,您将在其中放置图像。

所以在这条线上ImageUpload img = snapshot.getValue(ImageUpload.class);您获取图像,然后将该图像放入 putExtra 并将其检索到您的其他活动中。

最新更新