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

 

例子1:android加载自己文件夹的图片,使用R类

 

main.xml文件


< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
< ImageView
     android:id="@+id/iv1"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:src="@drawable/longshuai"     
   />
< /LinearLayout>

注意:强调一下,资源文件的图片命名规则比较严格,由[a-z]和数字和“_”组成,而且不能数字开头,我就常犯傻,命名老是数字或者大写字母开头,这种错误——囧。。

我们要把longshuai.png导入到res中,最简单的方式就是直接找到这个文件夹,复制进去

之后右键更新,我们就可以在res中看到自己的图片了

 

不用写代码。。直接用自动生成的代码。。

     public void onCreate(Bundle savedInstanceState)

    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

      }

效果如下:

 

 

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;
         }
    }

 

显示效果如下:

 

 

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)