Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะดาวน์โหลดและบันทึกรูปภาพจาก URL ที่กำหนดใน Android ได้อย่างไร


ตัวอย่างนี้สาธิตวิธีการดาวน์โหลดและบันทึกรูปภาพจาก URL ที่กำหนดใน Android

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

 <ปุ่ม android:id="@+id/btnDownload" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ดาวน์โหลดรูปภาพ" android:layout_margin="25dp" android:layout_gravity="top|center_horizontal" /> 

ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java

<ก่อนหน้า>นำเข้า android.app.Activity;นำเข้า android.app.ProgressDialog;นำเข้า android.content.Context;นำเข้า android.graphics.Bitmap;นำเข้า android.graphics.BitmapFactory;นำเข้า android.os.AsyncTask;นำเข้า android.support design.widget.CoordinatorLayout นำเข้า android.support.v7.app.AppCompatActivity นำเข้า android.os.Bundle นำเข้า android.view.View นำเข้า android.widget.Button นำเข้า android.widget.ImageView นำเข้า android.widget ขนมปังปิ้ง นำเข้า java.io.BufferedInputStream นำเข้า java.io.IOException นำเข้า java.io.InputStream นำเข้า java.net.HttpURLConnection นำเข้า java.net.MalformedURLException นำเข้า java.net.URL MainActivity ระดับสาธารณะขยาย AppCompatActivity { บริบทบริบท กิจกรรมกิจกรรม ผู้ประสานงานเลย์เอาต์ ผู้ประสานงานเลย์เอาต์เลย์เอาต์; ปุ่มปุ่ม; ProgressDialog mProgressDialog; ImageView mImageView; URL url; AsyncTask mMyTask; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); บริบท =getApplicationContext(); กิจกรรม =MainActivity.this; coordinatorLayout =findViewById(R.id.coordinatorLayout); ปุ่ม =findViewById(R.id.btnDownload); mImageView =findViewById(R.id.imageView); mProgressDialog =ProgressDialog ใหม่ (กิจกรรม); mProgressDialog.setIndeterminate(จริง); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); mProgressDialog.setTitle("AsyncTask"); mProgressDialog.setMessage("โปรดรอ เรากำลังดาวน์โหลดไฟล์ภาพของคุณ..."); button.setOnClickListener (View.OnClickListener ใหม่ () { @Override public void onClick (View view) { mMyTask =new DownloadTask ().execute (stringToURL ()); } }); } DownloadTask คลาสส่วนตัวขยาย AsyncTask { ป้องกันเป็นโมฆะ onPreExecute(){ mProgressDialog.show(); } ป้องกัน Bitmap doInBackground(URL...urls){ URL url =urls[0]; การเชื่อมต่อ HttpURLConnection =null; ลอง { การเชื่อมต่อ =(HttpURLConnection) url.openConnection(); การเชื่อมต่อเชื่อมต่อ (); InputStream inputStream =connection.getInputStream (); BufferedInputStream bufferedInputStream =BufferedInputStream ใหม่ (inputStream); ส่งคืน BitmapFactory.decodeStream (bufferedInputStream); }จับ(IOException จ){ e.printStackTrace(); } คืนค่า null; } // เมื่องาน async ทั้งหมดเสร็จสิ้นการป้องกันเป็นโมฆะ onPostExecute (ผลลัพธ์บิตแมป) { // ซ่อนกล่องโต้ตอบความคืบหน้า mProgressDialog.dismiss (); ถ้า (ผลลัพธ์! =null) { mImageView.setImageBitmap (ผลลัพธ์); } อื่น { // แจ้งให้ผู้ใช้ทราบว่าเกิดข้อผิดพลาดขณะดาวน์โหลดภาพ Toast.makeText (MainActivity.this, "Error", Toast.LENGTH_SHORT).show(); } } } URL ป้องกัน stringToURL() { ลอง { url =URL ใหม่ ("https://wallpapersite.com/images/pages/pic_w/6408.jpg"); ส่งคืน url; } จับ (MalformedURLException จ) { e.printStackTrace (); } คืนค่า null; }}

ขั้นตอนที่ 4 − เพิ่มรหัสต่อไปนี้ใน androidManifest.xml

    <กิจกรรม android:name=".MainActivity">      

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ –

จะดาวน์โหลดและบันทึกรูปภาพจาก URL ที่กำหนดใน Android ได้อย่างไร


จะดาวน์โหลดและบันทึกรูปภาพจาก URL ที่กำหนดใน Android ได้อย่างไร