怎么获得一个Imageview的大小?

作者&投稿:达修 (若有异议请与网页底部的电邮联系)
如何获得imageview内容的宽度~

动态的获取和设置ImageView的宽度和高度,参考实例如下:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;

public class PicTest extends Activity {
private final String TAG = "Pictrue Test!!!";
private ImageView image;
private int height = 0;
private int width = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

image = (ImageView)findViewById(R.id.ImageView01);
//height = image.getHeight();
//width = image.getWidth();
//Log.d(TAG, "height: " + height);
//Log.d(TAG, "width: " + width);

LayoutParams para;
para = image.getLayoutParams();

Log.d(TAG, "layout height0: " + para.height);
Log.d(TAG, "layout width0: " + para.width);

para.height = 300;
para.width = 300;
image.setLayoutParams(para);

Log.d(TAG, "layout height: " + para.height);
Log.d(TAG, "layout width: " + para.width);

}
}

ImageView可以放大缩小,也可以通过Scaletype这个属性来指定。
Scaletype的设置的方式包括:
1. 在layout xml中定义android:scaleType="CENTER"
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

Scaletype的取值和区别:
1. SetScaleType(ImageView.ScaleType.CENTER);
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
2. SetScaleType(ImageView.ScaleType.CENTER_CROP);

按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
4. setScaleType(ImageView.ScaleType.FIT_CENTER);

把图片按比例扩大/缩小到View的宽度,居中显示
5. FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。
在此就不给出示例了。
6. FIT_XY
不按比例缩放图片,目标是把图片塞满整个View。

android开发中ImageView在显示图片的时候,受限于屏幕大小和图片宽高。通常图片是被缩放过,且不是宽和高都充满ImageView的,获得被实际绘制的宽高大小代码如下:

final ImageView iv = (ImageView) findViewById(R.id.iv_test);
        iv.setImageResource(R.drawable.abc);
        
        //等待ImageVivew加载完成
        iv.post(new Runnable(){    

            @Override
            public void run() {
                // TODO Auto-generated method stub
                
                //ImageView的宽和高
                Log.d("lxy", "iv_W = " + iv.getWidth() + ", iv_H = " + iv.getHeight());

                //获得ImageView中Image的真实宽高,
                int dw = iv.getDrawable().getBounds().width();
                int dh = iv.getDrawable().getBounds().height();
                Log.d("lxy", "drawable_X = " + dw + ", drawable_Y = " + dh);
                
                //获得ImageView中Image的变换矩阵
                Matrix m = iv.getImageMatrix();
                float[] values = new float[10];
                m.getValues(values);
                
                //Image在绘制过程中的变换矩阵,从中获得x和y方向的缩放系数
                float sx = values[0];
                float sy = values[4];
                Log.d("lxy", "scale_X = " + sx + ", scale_Y = " + sy);
                
                //计算Image在屏幕上实际绘制的宽高
                int cw = (int)(dw * sx);
                int ch = (int)(dh * sy);
                Log.d("lxy", "caculate_W = " + cw + ", caculate_H = " + ch);
            }});


你这里是指的Android 中的 Imageview语句吗? 一、结构 java.lang.Object android.view.View android.widget.ImageView 已知直接子类: ImageButton, QuickContactBadge 已知间接子类: ZoomButton 二、类概述 显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项。 三、XML属性 属性名称 描述 android:adjustViewBounds 是否保持宽高比。需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。 android:cropToPadding 是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用,效果如下,实现代码见代码部分: android:maxHeight 设置View的最大高度,单独使用无效,需要与setAdjustViewBounds一起使用。如果想设置图片固定大小,又想保持图片宽高比,需要如下设置: 1) 设置setAdjustViewBounds为true; 2) 设置maxWidth、MaxHeight; 3) 设置设置layout_width和layout_height为wrap_content。 android:maxWidth 设置View的最大宽度。同上。 android:scaleType 设置图片的填充方式。 matrix 0 用矩阵来绘图 fitXY 1 拉伸图片(不按比例)以填充View的宽高 layout_ height :30px layout_ width :120px fitStart 2 按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边 fitCenter 3 按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间 fitEnd 4 按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边 center 5 按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示 layout_ height :60px layout_ width :80px padding :10px centerCrop 6 按比例放大原图直至等于某边View的宽高显示。 centerInside 7 当原图宽高或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。 android:src 设置View的drawable(如图片,也可以是颜色,但是需要指定View的大小) android:tint 将图片渲染成指定的颜色。见下图: 左边为原图,右边为设置后的效果,见后面代码。 四、代码 4.1 android:tint Java代码 <ImageView android:background="@android:color/white" android:src="@drawable/btn_mode_switch_bg" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> <ImageView android:layout_marginLeft="5dp" android:background="@android:color/white" android:tint="#ffff00" android:src="@drawable/btn_mode_switch_bg" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> 4.2 android:cropToPaddingJava代码 <ImageView android:background="@android:color/white" android:scrollY="-10px" android:cropToPadding="true" android:src="@drawable/btn_mode_switch_bg" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> <ImageView android:background="@android:color/white" android:scrollY="10px" android:cropToPadding="true" android:src="@drawable/btn_mode_switch_bg" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> <ImageView android:paddingTop="10px" android:background="@android:color/white" android:scrollY="10px" android:cropToPadding="true" android:src="@drawable/btn_mode_switch_bg" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> <ImageView android:paddingTop="10px" android:background="@android:color/white" android:scrollY="10px" android:cropToPadding="false" android:src="@drawable/btn_mode_switch_bg" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> 这是引用自: http://407827531.iteye.com/blog/1117199

麻烦采纳,谢谢!


电脑硬盘拒绝访问怎么办 ,
解决办法以及步骤:1、点击电脑硬盘,出现拒绝访问,如下图所示:2、先下载并解压程序运行后,直接双击需要恢复的分区,接着右击软件图标选择《以管理员身份运行》(如果是xp系统可以直接双击打开软件)。3、程序打开后,直接双击需要恢复的分区。4、软件找到资料后,会放到与要恢复盘同名的目录中。5、勾选...

赵本山带的帽子叫什么名?
赵本山帽子 名称:解放帽 俗称:干部帽 http:\/\/www.sh-keer.com\/tupian\/imag0405.jpg

pdf怎么去掉文字高亮?
2023-03-22 · TA获得超过138个赞 知道答主 回答量:179 采纳率:0% 帮助的人:32.9万 我也去答题访问个人页 关注 展开全部 1. 在pdf文档中怎样取消高亮文本和标注 在pdf文档中取消高亮文本和标注的具体步骤如下: 1、首先我们运行PDF编辑器,在编辑器中打开需要修改的PDF文件。 2、文件打开后,点...

matlab问题
complex 建立一个复数 conj 复数配对 cos,cosh 余弦,双曲余弦 csc,csch 余切,双曲余切 cot,coth 余切,双曲余切 exp 指数 fix 朝0方向取整 floor 朝负无穷取整 gcd 最大公因数 imag 复数值的虚部 lcm 最小公倍数 log 自然对数 log2 以2为底的对数 log10 常用对数 mod 有符号的求余 nchoosek 二项式系数...

matlab2011中的Discrete Filter怎么找
complex 建立一个复数 conj 复数配对 cos,cosh 余弦,双曲余弦 csc,csch 余切,双曲余切 cot,coth 余切,双曲余切 exp 指数 fix 朝0方向取整 floor 朝负无穷取整 gcd 最大公因数 imag 复数值的虚部 lcm 最小公倍数 log 自然对数 log2 以2为底的对数 log10 常用对数 mod 有符号的求余 nchoosek 二项式系数...

你应该尽最大努力记住这些单词用英语怎么说
努力提高高等学校教师的素质。2.It pays to make great efforts to prepare for TOEFL-ibt.努力准备新托福考试是值得的。3.Museums have been trying hard to shed their stuffy imag.博物馆一直努力改变自己沉闷的形象。4.We are doing our best with the limited resources available.我们利用可获得...

怎么把pdf中的高亮去掉
2022-09-25 · TA获得超过8308个赞 知道小有建树答主 回答量:349 采纳率:0% 帮助的人:44.7万 我也去答题访问个人页 关注 展开全部 1. 在pdf文档中怎样取消高亮文本和标注 在pdf文档中取消高亮文本和标注的具体步骤如下: 1、首先我们运行PDF编辑器,在编辑器中打开需要修改的PDF文件。 2、文件...

秦都区19562315378: 怎么获得一个Imageview的大小?
廖复那琦: 你这里是指的Android 中的 Imageview语句吗? 一、结构java.lang.Objectandroid.view.Viewandroid.widget.ImageView 已知直接子类:ImageButton, QuickContactBadge 已知间接子类:ZoomButton 二、类概述显示任意图像,例如图标.ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项. 三、XML属性

秦都区19562315378: 如何获得imageview内容的宽度 -
廖复那琦: 动态的获取和设置ImageView的宽度和高度,参考实例如下:import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; public class PicTest ...

秦都区19562315378: 如何正确的获得一个view的宽和高 -
廖复那琦: 这里有三种方法,经过验证的:方法一 ://测量方法 int width =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int height =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); view....

秦都区19562315378: 如何获取image的高度和宽度? -
廖复那琦: 在ImageView中的image,可以使用getWidth()和getHeight()来获取宽度和高度,但是获得的image宽度和高度不是很精确的;对于背景图片,你首先要获取背景的Drawable对象,然后将Drawable对象转换为BitmapDrawable,这样你就可以...

秦都区19562315378: 如何使用代码动态的获取和设置ImageView的宽度和高度 -
廖复那琦: 你好,很高兴为你解答~! ImageView imageView = (ImageView)findViewById(R.id.imageView); imageView.setImageResource(R.drawable.newscar); LayoutParams params = imageView.getLayoutParams(); params.height=200; params.width =...

秦都区19562315378: 怎么获取LinearLayout里ImageView的坐标及大小 -
廖复那琦: 你可是试试这个://这是为获取布局中固定的ImageView的大小 int imageHeight; int imageWidth; ImageView imageViewObj = (ImageView)findViewById(R.id.image_view_id); ViewTreeObserver treeObsObj = imageViewObj.getViewTreeObserver()...

秦都区19562315378: 如何动态的获取和设置ImageView的宽度和高度 -
廖复那琦: package com.pic; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; public class PicTest extends Activity { private final String TAG = "...

秦都区19562315378: 如何使用代码动态的获取和设置ImageView的宽度和高度 -
廖复那琦: <span style="white-space:pre"> </span>ImageView imageView = (ImageView)findViewById(R.id.imageView); imageView.setImageResource(R.drawable.newscar); LayoutParams params = imageView.getLayoutParams(); params.height=200; params.width =100; imageView.setLayoutParams(params);

秦都区19562315378: android中怎么获取一个视屏在view中的有效高宽. -
廖复那琦: 1.WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight();2.DisplayMetrics dm = new DisplayMetrics(); this....

秦都区19562315378: 如何动态的获取和设置ImageView的宽度和高度? -
廖复那琦: 如果imageview里本身没有内容,又是自适应高度weight=0,getWidth()和getHeight()将一直返回0.所以LZ的动态的获取这个需求不很明确.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网