Pro Android学习笔记(十六):用户界面和控制(4):ImageView控件
来源:互联网 发布:安卓自带应用源码 编辑:程序博客网 时间:2024/06/09 20:58
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控件
- Pro Android学习笔记(十七):用户界面和控制(5):日期和时间控件
- Pro Android学习笔记(十五):用户界面和控制(3):Button控件
- Pro Android学习笔记(二三):用户界面和控制(11):其他控件
- Pro Android学习笔记(十四):用户界面和控制(2):Text类控制
- Pro Android学习笔记(十八):用户界面和控制(6):Adapter和AdapterView
- Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
- Pro Android学习笔记(二一):用户界面和控制(9):Gallery和SimpleAdapter
- Pro Android学习笔记(二四):用户界面和控制(12):Style和Theme
- Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout
- Pro Android学习笔记(二九):用户界面和控制(17):include和merge
- Pro Android学习笔记(十三):用户界面和控制(1):UI开发
- Pro Android学习笔记(十九):用户界面和控制(7):ListView
- Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter
- Pro Android学习笔记(二六):用户界面和控制(14):RelativeLayout
- Pro Android学习笔记(二七):用户界面和控制(15):FrameLayout
- Pro Android学习笔记(二八):用户界面和控制(16):GridLayout
- Pro Android 4 第六章 构建用户界面以及使用控件(一)
- Qt中QFileDialog的使用
- 十步图解CSS的position
- 连分数
- Linux设备驱动模型之上层容器
- Java I/O的两个设计模式
- Pro Android学习笔记(十六):用户界面和控制(4):ImageView控件
- dp hdu-4433 locker
- Block Objects 学习笔记
- MFC实现拖拽文件
- C#初学者--用类打开mdb文件
- hdu 1011 Starship Troopers (树形背包dp)
- 使用ExeConfigurationFileMap讀寫配置文件
- Qt控件美化
- Json解析与NDK入门