目录(?)[-]

  1. XML片段
  2. 代码设置ImageView

ImageView是基础的控件,它是android.widget.ImageView的继承类。

XML片段

     <LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:orientation="horizontal"> 
       <!--  指定资源id: @drawable/xxxxx  -->
        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:id="@+id/ui_image1" 
            android:src="@drawable/ic_launcher" />

<!-- 显示色块 --> 
        <ImageView android:layout_width="125dip" 
            android:layout_height="25dip" 
            android:id="@+id/ui_image2" 
           android:src="#555555" 
            android:contentDescription="set pure color"/> 
   </LinearLayout> 
   
    <LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:orientation="horizontal">  
       <!-- 这三个图来源于同一个128×128的png图标,前两者指定长、宽时,皆比原图要小,系统采用等比缩小的方式适配指定size -->
        <ImageView android:layout_width="25dip" 
            android:layout_height="25dip" 
            android:src="@drawable/png0441"/> 
        <ImageView android:layout_width="48dip" 
            android:layout_height="48dip" 
            android:src="@drawable/png0441"/> 
        <ImageView android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
             android:src="@drawable/png0441" /> 
    </LinearLayout> 
    <!-- 对下面的图,我们设定图片缩小的方式,fitXY,填满整个size。此外我还是试验了两layout_width和layout_height设置为wrap_content,而另外设置了maxWidth和maxHeight,但是发现maxWidth/Height并不起作用,仍是原图大小呈现,这点和Pro Android 4.0书中所言不同,关于此功能,慎用 --> 
    <ImageView android:layout_width="60dip" 
        android:layout_height="30dip" 
        android:src="@drawable/png0441" 
        android:scaleType="fitXY"  />  
    <!-- 这里我们没有设置android:src,但是给了一个id号,用于等会在代码进行设置 --> 
    <ImageView android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/ui_image3"  />

代码设置ImageView

在XML中ui_image3没有设置具体的src,可以在代码中通过若干中方法设置。

方式1:设置资源的ID

ImageView image = (ImageView)findViewById(R.id.ui_image3); 
image.setImageResource(R.drawable.ic_launcher);

方式2:通过Bitmap

ImageView image = (ImageView)findViewById(R.id.ui_image3);
Bitmap bm = BitmapFactory.decodeResource(this.getResources(), R.drawable.png02); 
//在这里可以加入对Bitmap的处理代码 ... ... 
image.setImageBitmap(bm);

方式3:通过文件

对于模拟器,我们通过命令行以adb push的方式将图片文件放入文件系统的某个位置,例如sdcard中,如下图所示:

ImageView image = (ImageView)findViewById(R.id.ui_image3);
try{ 
    String filename = Environment.getExternalStorageDirectory()+ "/wei/sunflower.jpg"; 
   image.setImageDrawable(Drawable.createFromPath(filename)); 
}catch(Exception e){ 
    Log.e("wei",e.toString()); 
}

方式4:通过Uri方式

ImageView image = (ImageView)findViewById(R.id.ui_image3);
image.setImageURI(Uri.parse("file://mnt/sdcard/wei/logo.jpg")); //只能是本地存储 

注意URI方式只限于本地存储,不能是远端存储,如果我们设置了web URI,系统会报以下错误:

其他

如果我们希望图片来自remote,可以利用BitmapFactory.decodeStream(InputStream is),然后将Bitmap放入ImageView中。

相关链接: 我的Android开发相关文章

【转】Pro Android学习笔记(十六):用户界面和控制(4):ImageView控件的更多相关文章

  1. 【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET

    目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用ser ...

  2. 【转】 Pro Android学习笔记(六十):Preferences(4):MultiSelect List Preference

    目录(?)[-] XML文件 在设备中保存 读出信息 ListPreference提供单选列表,我们可以通过CheckBoxPreference提供多选列表.此外,Android在3.0后提供Mult ...

  3. 【转】 Pro Android学习笔记(六八):HTTP服务(2):HTTP POST

    目录(?)[-] 找一个测试网站 HTTP POST小例子 上次学习了HTTP GET请求,这次学习一下HTTP POST. 找一个测试网站 小例子好写,但要找个测试网站就有些麻烦,一下子无从入手,都 ...

  4. 【转】 Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart

    目录(?)[-] 建立测试环境 开发环境导入第三方JAR HTTP Post Multipart小例子 HTTP POST不仅可以通过键值对传递参数,还可以携带更为复杂的参数,例如文件.HTTP Po ...

  5. 【转】 Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限

    目录(?)[-] 进程边界 声明和使用权限 AndroidManifestxml的许可设置 自定义权限 运行安全通过两个层面进行保护.进程层面:不同应用运行在不同的进程,每个应用有独自的user ID ...

  6. 【转】 Pro Android学习笔记(六三):Preferences(7):代码控制首选项

    [-] 代码实现preference 利用preference保存状态 DialogPreference 代码实现preference View可以不通过xml进行设置,有代码直接进行设置,首选项pr ...

  7. 【转】 Pro Android学习笔记(六二):Preferences(6):header

    目录(?)[-] 代码实现 header xml文件 在前面的例子,我们主要学习了PreferenceScreen的xml如何写,preference有哪些类型.在代码中,我们为了不提示warning ...

  8. 【转】 Pro Android学习笔记(六四):安全和权限(1):签发apk

    目录(?)[-] Android安全模型 数字证书签发 Debug的keystore 生产unsigned的apk 为apk进行证书签发 align安装包 使用Export Wizard生成签发的ap ...

  9. 【转】Pro Android学习笔记(六):了解Content Provider(中)

    Content Provider的架构 Authority类似web中的域名,每个content provider会通过AndroidManifest.xml向系统注册authority,如下.其中n ...

  10. 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...

随机推荐

  1. 深入 JavaScript 中的对象以及继承原理

    ES6引入了一个很甜的语法糖就是 class, class 可以帮助开发者回归到 Java 时代的面向对象编程而不是 ES5 中被诟病的面向原型编程. 我也在工作的业务代码中大量的使用 class, ...

  2. python cookbook第三版学习笔记十七:委托属性

    我们想在访问实例的属性时能够将其委托到一个内部持有的对象上,这经常用到代理机制上 class A:     def spam(self,x):         print("class_A: ...

  3. 用cocos2d-html5做的消除类游戏《英雄爱消除》(3)——游戏主界面

    游戏主界面,同时也是主程序,包括sprite的生成加入以及游戏状态的控制. 下面同样贴下源码再讲解; /** * Power by html5中文网(html5china.com) * author: ...

  4. js完美实现table分页

    // JavaScript Document /** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为String * ...

  5. 【leetcode刷题笔记】Valid Number

    Validate if a given string is numeric. Some examples:"0" => true" 0.1 " => ...

  6. 【八】MongoDB管理之分片集群实践

    MongoDB中集群有三种:主从复制.副本集.分片集群.目前副本集已经替代主从复制架构,成为官方建议采用的架构,而分片集群相较于前两种,更加复杂. 下面是生产环境中常用的分片集群架构: 我们知道,分片 ...

  7. java网络爬虫爬虫小栗子

    简要介绍: 使用java开发的爬虫小栗子,存储到由zookeeper协调的hbase中 主要过程是模拟Post请求和get请求,html解析,hbase存储 源码:https://github.com ...

  8. 算法(Algorithms)第4版 练习 1.5.8

    假设原id数组: 0 1 1 4 4 8 6 1 8 0 输入p = 5, q = 7 则输出结果会出错,最终为: 0 1 1 4 4 1 6 1 8 0 因为当id[p](id[5] = 8)被赋值 ...

  9. IE6、IE7、IE8及其他浏览器多个元素并排显示

    IE6.IE7.IE8及其他浏览器多个元素并排显示 HTML代码 <div class="line"> <h1>全部input框</h1> &l ...

  10. Cocos2d-x中手动构造Json::Value

    由于项目需要Json::Value 不是由服务器传送过来,而是自己手动构造. 带数组的json Json::Value items; for(int i=0,i<2;i++) { items[i ...