一、前
有了图片地址,显示也写好了。考虑这样一种情况,用户觉得图片不错,想要下载下来当作壁纸。
于是本次的功能就是从服务器下载图片。
写一个Util类,使用工具类调用。
二、工具类ImageDownload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
public class ImageDownload { Button content; ImageView image; Bitmap bitmap;
public Bitmap GetImageInputStream(String imageurl){ URL url; HttpURLConnection connection=null; Bitmap bitmap=null; try { url = new URL(imageurl); connection=(HttpURLConnection)url.openConnection(); connection.setConnectTimeout(6000); connection.setDoInput(true); connection.setUseCaches(false); InputStream inputStream=connection.getInputStream(); bitmap= BitmapFactory.decodeStream(inputStream); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } return bitmap; } Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { if(msg.what==0x123){ image.setImageBitmap(bitmap); } }; };
class Task extends AsyncTask<String, Integer, Void> { protected Void doInBackground(String... params) { bitmap=GetImageInputStream((String)params[0]); return null; } protected void onPostExecute(Void result) { super.onPostExecute(result); Message message=new Message(); message.what=0x123; handler.sendMessage(message); } }
public static void SavaImage(Bitmap bitmap, String path){ File file=new File(path); FileOutputStream fileOutputStream=null; if(!file.exists()){ file.mkdir(); } try { fileOutputStream=new FileOutputStream(path+"/"+System.currentTimeMillis()+".png"); bitmap.compress(Bitmap.CompressFormat.JPEG, 100,fileOutputStream); fileOutputStream.close(); } catch (Exception e) { e.printStackTrace(); } } }
|
三、调用
在ImageDetailsActivity中的下载按钮监听中调用。
1 2 3 4 5
| String imagePath = getImagePath(StaticData.getLists().get(downPosi).getsURL()); Bitmap down_bitmap = BitmapFactory.decodeFile(imagePath); mButtonDown.setBackgroundResource(R.mipmap.down); ImageDownload.SavaImage(down_bitmap, Environment.getExternalStorageDirectory().getPath()+"/Cyhs"); Toast.makeText(getApplicationContext(), "φ(゜▽゜*)♪下载成功", Toast.LENGTH_SHORT).show();
|
四、后
简单实现了服务器下载图片,有不好的地方欢迎大家指出,祝好!