Android Java 如何从 Uri(从Firebase检索)分享图像,而无需保存图像。

huangapple 未分类评论44阅读模式
英文:

Android Java How to Share Images from Uri (retrived from Firebase)without save the image

问题

public class ImagesActivity extends AppCompatActivity implements ImageAdapter.onlikeclic, ImageAdapter.onshareclick {

    private RecyclerView mRecyclerView;
    private ImageAdapter mAdapter;
    private ProgressBar mProgressCircle;
    private DatabaseReference mDatabaseRef;

    private List<Upload> uploads;

    private int position_of_image;

    String url;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_images);

        mRecyclerView = findViewById(R.id.recycler);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

        linearLayoutManager.setStackFromEnd(true);
        linearLayoutManager.setReverseLayout(true);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setLayoutManager(linearLayoutManager);
        mProgressCircle = findViewById(R.id.progress_circle);
        mDatabaseRef = FirebaseDatabase.getInstance().getReference("uploads");

        uploads = new ArrayList<>();

        mDatabaseRef.addValueEventListener(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    Upload upload = postSnapshot.getValue(Upload.class);
                    uploads.add(upload);
                }
                mAdapter = new ImageAdapter(ImagesActivity.this, uploads);
                mRecyclerView.setAdapter(mAdapter);
                //interface
                mAdapter.setonitemclicklistener(ImagesActivity.this);
                //interface
                mAdapter.setonshareclicked(ImagesActivity.this);

                mProgressCircle.setVisibility(View.INVISIBLE);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(ImagesActivity.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                mProgressCircle.setVisibility(View.INVISIBLE);
            }
        });
    }

    @Override
    public void onshareiconclicked(int position) {
        Uri theUri = Uri.parse(url);
        Intent intent = new Intent(android.content.Intent.ACTION_SEND);
        intent.putExtra(Intent.EXTRA_STREAM, theUri);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.setType("image/jpg");
        startActivity(intent);
    }
}
英文:

I want to share image that I have its URI. I retrieved it from realtime database and put it into recycler view. How can I share it without saving it?

public class ImagesActivity extends AppCompatActivity implements ImageAdapter.onlikeclic,ImageAdapter.onshareclick {

    private RecyclerView mRecyclerView;
    private ImageAdapter mAdapter;
    private ProgressBar mProgressCircle;
    private DatabaseReference mDatabaseRef;


    private List&lt;Upload&gt; uploads;

    private int position_of_image;


    String url;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_images);


        mRecyclerView = findViewById(R.id.recycler);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

        linearLayoutManager.setStackFromEnd(true);
        linearLayoutManager.setReverseLayout(true);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setLayoutManager(linearLayoutManager);
        mProgressCircle = findViewById(R.id.progress_circle);
        mDatabaseRef = FirebaseDatabase.getInstance().getReference(&quot;uploads&quot;);


        uploads = new ArrayList&lt;&gt;();


        mDatabaseRef.addValueEventListener(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    Upload upload = postSnapshot.getValue(Upload.class);
                    uploads.add(upload);

                }
                mAdapter = new ImageAdapter(ImagesActivity.this, uploads);

                mRecyclerView.setAdapter(mAdapter);
                //interface
                mAdapter.setonitemclicklistener(ImagesActivity.this);
                //interface
                mAdapter.setonshareclicked(ImagesActivity.this);

                mProgressCircle.setVisibility(View.INVISIBLE);

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(ImagesActivity.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                mProgressCircle.setVisibility(View.INVISIBLE);
            }
        });

    }
 @Override
  

 

 public void onshareiconclicked(int position) {
     //   int pos = position;

        Uri theUri = Uri.parse(url);
    Intent intent = new Intent(android.content.Intent.ACTION_SEND);
    intent.putExtra(Intent.EXTRA_STREAM, uri);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.setType(&quot;image/jpg&quot;);
    startActivity(intent);
    }    
}

huangapple
  • 本文由 发表于 2020年4月8日 11:01:26
  • 转载请务必保留本文链接:https://java.coder-hub.com/61092664.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定