How to build a Horizontal ListView with RecyclerView?

前端 未结 13 1254
小鲜肉
小鲜肉 2020-11-22 04:53

I need to implement a horizontal listview in my Android application. I did a bit of research and came across How can I make a horizontal ListView in Android? and Horizontal

13条回答
  •  猫巷女王i
    2020-11-22 05:36

     
            
            
    
        import androidx.appcompat.app.AppCompatActivity;
        import android.content.Context;
        import android.content.ContextWrapper;
        import android.graphics.Bitmap;
        import android.graphics.BitmapFactory;
        import android.os.AsyncTask;
        import android.os.Bundle;
        import android.os.Environment;
        import android.view.View;
        import android.widget.ImageView;
        import android.widget.Toast;
        import java.io.File;
        import java.io.FileInputStream;
        import java.io.FileNotFoundException;
        import java.io.FileOutputStream;
        import java.io.IOException;
        import java.io.InputStream;
        import java.net.HttpURLConnection;
        public class MainActivity extends AppCompatActivity
         {
            ImageView mImageView1;
            Bitmap bitmap;
            String mSavedInfo;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                mImageView1 = (ImageView) findViewById(R.id.image);
            }
            public Bitmap getBitmapFromURL(String src) {
                try {
                    java.net.URL url = new java.net.URL(src);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setDoInput(true);
                    connection.connect();
                    InputStream input = connection.getInputStream();
                    Bitmap myBitmap = BitmapFactory.decodeStream(input);
                    return myBitmap;
                } catch (IOException e) {
                    e.printStackTrace();
                    return null;
                }
            }
            public void button2(View view) {
                new DownloadImageFromTherad().execute();
            }
            private class DownloadImageFromTherad extends AsyncTask {
                @Override
                protected String doInBackground(String... params) {
                    bitmap = getBitmapFromURL("https://cdn.pixabay.com/photo/2016/08/08/09/17/avatar-1577909_960_720.png");
                    return null;
                }
    
                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);
                    File sdCardDirectory = Environment.getExternalStorageDirectory();
                    File image = new File(sdCardDirectory, "test.png");
                    boolean success = false;
                    FileOutputStream outStream;
                    mSavedInfo = saveToInternalStorage(bitmap);
                    if (success) {
                        Toast.makeText(getApplicationContext(), "Image saved with success", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(getApplicationContext(), "Error during image saving" + mSavedInfo, Toast.LENGTH_LONG).show();
                    }
                }
            }
            private String saveToInternalStorage(Bitmap bitmapImage) {
                ContextWrapper cw = new ContextWrapper(getApplicationContext());
                // path to /data/data/yourapp/app_data/imageDir
                File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
                File mypath = new File(directory, "profile.jpg");
                FileOutputStream fos = null;
                try {
                    fos = new FileOutputStream(mypath);
                    bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return directory.getAbsolutePath();
            }
            private void loadImageFromStorage(String path) {
                try {
                    File f = new File(path, "profile.jpg");
                    Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));
                    mImageView1.setImageBitmap(b);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            }
            public void showImage(View view) {
                loadImageFromStorage(mSavedInfo);
            }
        }
    

提交回复
热议问题