ImageView

发布时间:2016-12-10 13:04:30 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"ImageView",主要涉及到ImageView方面的内容,对于ImageView感兴趣的同学可以参考一下。

package com.example.imageviewtest; import android.app.Activity; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class ImageViewTest extends Activity { //定义一个访问图片的数组 int[] images = new int[]{ R.drawable.lijiang, R.drawable.qiao, R.drawable.shuangta, R.drawable.shui, R.drawable.xiangbi, }; //定义默认显示的图片 int currentImg = 2; //定义图片的初始透明度 private int alpha = 255; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button plus = (Button)findViewById(R.id.plus); final Button minus = (Button)findViewById(R.id.minus); final ImageView image1 = (ImageView)findViewById(R.id.image1); final Button next = (Button)findViewById(R.id.next); //定义查看下一张图片的监听器 next.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (currentImg >= 4) { currentImg = -1; } BitmapDrawable bitmapDrawable = (BitmapDrawable) image1 .getDrawable(); //如果图片还未回收,先强制回收该图片 if (!bitmapDrawable.getBitmap().isRecycled()) { bitmapDrawable.getBitmap().recycle(); } //改变ImageView显示的图片 image1.setImageBitmap(BitmapFactory.decodeResource(getResources() , images[++currentImg])); } }); //定义改变图片透明度的方法 OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { if(v == plus) { alpha += 20; } if(v == minus) { alpha -= 20; } if(alpha >= 255) { alpha = 255; } if(alpha <= 0) { alpha = 0; } //改变图片的透明度 image1.setAlpha(alpha); } }; //为两个按钮添加监听器 plus.setOnClickListener(listener); minus.setOnClickListener(listener); } }<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> <Button android:id="@+id/plus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增大透明度" /> <Button android:id="@+id/minus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="降低透明度" /> <Button android:id="@+id/next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一张" /> </LinearLayout> <!-- 定义显示图片整体的ImageView --> <ImageView android:id="@+id/image1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/shuangta" android:scaleType="fitEnd" /> </LinearLayout> 上面的程序完成了对Android工程文件下的res→drawable-mdpi 下面几个jpg文件的存取,显示。 2.3.7  图像视图(ImageView)的功能和用法     ImageView继承自View组件,它的主要功能是用于显示图片——实际上这个说法不太严谨,因为它能显示的不仅仅是图片,任何Drawable对象都可使用ImageView来显示。     TextView支持的常用XML属性及相关方法的说明。         所支持的android: scaleType属性可指定如下属性值。     matrix (lmageView.ScaleType.MATRIX):使用matrix方式进行缩放。     fitXY (lmageView.ScaleType.FIT_XY):对图片横向、纵向独立缩放,使得该图片完全适应于该ImageView,图片的纵横比可能会改变。     fitStart (lmageView.ScaIeType.FIT_START):保持纵横比缩放图片.直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在ImageView的左上角。     fitCenter (lrnageView.ScaleType.FIT_CENTER):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在ImageView的中央。     fitEnd (lmageView.ScaleType.FIT_END):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等。缩放完成后将该图片放在ImageView的右下角。     center (lmageView.ScaleType.CENTER):把图片放在ImageView的中间,但不进行任何缩放。     centerCrop (lmageView.ScaleType.CENTER_CROP);保持纵横比缩放图片,以使得图片能完全覆盖ImageView。     centerlnside (lmageView.ScaloType.CENTER_INSIDE):保持纵横比缩放图片,以使得ImageView能完全显示该图斤。     ImageView的功能比较简单,下面结合一个图片浏览器的实例来示范ImageView的功能 和用法。 实例:图片浏览器    本例的图片浏览器可以改变所查看图片的透明度,可通过调用Image'View的secAlpha方法来实现。  在Layout文件当中设置了 android:scaleType="fitEnd"  的话图片将出现在屏幕的下方 而当android:scaleType="fitEnd" 的话图片出现在了屏幕的中间 android:scaleType="fitStart" 的话图片将会出现在屏幕的上方 当然定义的时候是左上方,左下方,不过此时没有具体定义 我如果将宽度定为15dp 高度定为200dp 设置为fitEnd 但是得出的结果是图片的宽度竟然比高度要长 还显示在了ImageView的左下方 我改为fitCenter之后  仍然是宽度大于高度 并且显示在了中间靠左边界的位置 改为fitStart之后就显示在了上方靠左的位置,宽度仍旧大于高度 改为center之后就变成了长条形的了  因为center根本就不进行任何的缩放,所以就是显示了图片中间的宽15dp高200dp的部分。 而上面的fitxxxx  主要是在于一个fit  于是就要按比例进行缩放了 fitXY是按照ImageView的长宽比进行缩放,于是就会使图片产生变形,但是会填满整个ImageView的,显示整张图片的 fitStart  fitEnd  fitCenter  只是会依照最小的宽度或者高度进行缩放。 android:src="@drawable/ic_launcher" 是默认显示选项 这个以上不正常情况的产生主要是由于所选择的的图片过大,而分配的ImageView并不是那么大,所以尽管他想放置在右下角但是无奈的优先fit 所以就填充了整个地方 当我们的ImageView设置大了,并且图片选择小一些就可以出现相应的布局形式。 当我们的ImageView显示的过大的时候,就会发现有些部分是无法显示在屏幕上的,因为fitEnd的作用就是显示在右下角,所以就按规矩显示在了 屏幕上的不可见的右下角。

上一篇:扑克牌的顺子
下一篇:AndEngine加载图片资源(五)

相关文章

关键词: ImageView

相关评论