android使用ImageView加载本地SdCard图片和加载网络图片

2019-04-15 15:03发布

android使用ImageView加载本地SdCard图片和加载网络图片  

例子1:android加载自己文件夹的图片,使用R类   main.xml文件
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
     android:id="@+id/iv1"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:src="@drawable/longshuai"     
   />
注意:强调一下,资源文件的图片命名规则比较严格,由[a-z]和数字和“_”组成,而且不能数字开头,我就常犯傻,命名老是数字或者大写字母开头,这种错误——囧。。
我们要把longshuai.png导入到res中,最简单的方式就是直接找到这个文件夹,复制进去 之后右键更新,我们就可以在res中看到自己的图片了 android使用ImageView加载本地SdCard图片和加载网络图片 - 夏天的风 - FreeSimpleHappy   不用写代码。。直接用自动生成的代码。。      public void onCreate(Bundle savedInstanceState)     {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      } 效果如下: android使用ImageView加载本地SdCard图片和加载网络图片 - 夏天的风 - FreeSimpleHappy     2、加载本地图片(其实主要是SdCard中图片) 关于SdCard的使用,可以参见http://longshuai2007.blog.163.com/blog/static/1420944142011611103950500/   xml文件同上面的是一样的,并不需要修改     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ImageView image1 = (ImageView) findViewById(R.id.iv1);  //获得ImageView对象
         /*为什么图片一定要转化为 Bitmap格式的!! */
        Bitmap bitmap = getLoacalBitmap("/sdcard/tubiao.jpg"); //从本地取图片(在cdcard中获取)  //
        image1 .setImageBitmap(bitmap); //设置Bitmap
      }
      /**
    * 加载本地图片
    * @param url
    * @return
    */
    public static Bitmap getLoacalBitmap(String url) {
         try {
              FileInputStream fis = new FileInputStream(url);
              return BitmapFactory.decodeStream(fis);  ///把流转化为Bitmap图片        
           } catch (FileNotFoundException e) {
              e.printStackTrace();
              return null;
         }
    }
  显示效果如下: android使用ImageView加载本地SdCard图片和加载网络图片 - 夏天的风 - FreeSimpleHappy     3、获取网络上的图片 mian.xml文件和1中一样,并不需要修改!   代码:     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ImageView image1 = (ImageView) findViewById(R.id.iv1);
        Bitmap bitmap =getHttpBitmap("http://images.missyuan.com/attachments/day_071123/20071123_b2bfefe1ec56e2df6582vCGIZG81gbyM.png");                          //从网上取图片
        image1 .setImageBitmap(bitmap); //设置Bitmap
}       /**
    * 从服务器取图片
    * @param url
    * @return
    */
    public static Bitmap getHttpBitmap(String url) {
         URL myFileUrl = null;
         Bitmap bitmap = null;
         try {
              myFileUrl = new URL(url);
         } catch (MalformedURLException e) {
              e.printStackTrace();
         }
         try {
              HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
              conn.setConnectTimeout(0);
              conn.setDoInput(true);
              conn.connect();
              InputStream is = conn.getInputStream();
              bitmap = BitmapFactory.decodeStream(is);
              is.close();
         } catch (IOException e) {
              e.printStackTrace();
         }
         return bitmap;
    }
    注意:由于需要使用网络,所以 AndroidManfest.xml 文件需要添加使用网络权限!!!       这也是我为什么一直错,而且一直找不到原因,它就是不显示图片,什么错误都没有,坑爹啊!!   android使用ImageView加载本地SdCard图片和加载网络图片 - 夏天的风 - FreeSimpleHappy