怎么获得一个Imageview的大小

怎么获得一个Imageview的大小,第1张

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

final ImageView iv = (ImageView) findViewById(Ridiv_test);

        ivsetImageResource(Rdrawableabc);

        

        //等待ImageVivew加载完成

        ivpost(new Runnable(){    

            @Override

            public void run() {

                // TODO Auto-generated method stub

                

                //ImageView的宽和高

                Logd("lxy", "iv_W = " + ivgetWidth() + ", iv_H = " + ivgetHeight());

                //获得ImageView中Image的真实宽高,

                int dw = ivgetDrawable()getBounds()width();

                int dh = ivgetDrawable()getBounds()height();

                Logd("lxy", "drawable_X = " + dw + ", drawable_Y = " + dh);

                

                //获得ImageView中Image的变换矩阵

                Matrix m = ivgetImageMatrix();

                float[] values = new float[10];

                mgetValues(values);

                

                //Image在绘制过程中的变换矩阵,从中获得x和y方向的缩放系数

                float sx = values[0];

                float sy = values[4];

                Logd("lxy", "scale_X = " + sx + ", scale_Y = " + sy);

                

                //计算Image在屏幕上实际绘制的宽高

                int cw = (int)(dw  sx);

                int ch = (int)(dh  sy);

                Logd("lxy", "caculate_W = " + cw + ", caculate_H = " + ch);

            }});

关键字: 屏幕适配 px dp dpi sp large限定符 9png

前言: 这篇文章依然是我在 [慕课网 ][h]学习 凯子哥 的同名视频 Android-屏幕适配全攻略 ,所记录下来的笔记---凯子哥讲得真的超详细。

[h]: >

获取屏幕分辨率的方式如下:

一、在activity中

1、DisplayMetrics dm = getResources()getDisplayMetrics();

int screenWidth = dmwidthPixels;

int screenHeight = dmheightPixels;

2、DisplayMetrics dm = new DisplayMetrics();

thisgetWindowManager()getDefaultDisplay()getMetrics(dm);

int screenWidth = dmwidthPixels;

int screenHeight = dmheightPixels;

二、在service中

DisplayMetrics dm = new DisplayMetrics();

dm = getResources()getDisplayMetrics();

int screenWidth = dmwidthPixels;

int screenHeight = dmheightPixels;

三、在非activity中,传一个Context进来调用

1、public ImageGalleryAdapter(Context c) {

myContext = c;

DisplayMetrics dm = cgetResources()getDisplayMetrics();

int screenWidth = dmwidthPixels;

int screenHeight = dmheightPixels;

}

2、public class BaseTools {

public static int getWindowWidth(Context context){

// 获取屏幕分辨率

WindowManager wm = (WindowManager) (contextgetSystemService(ContextWINDOW_SERVICE));

DisplayMetrics dm = new DisplayMetrics();

wmgetDefaultDisplay()getMetrics(dm);

int mScreenWidth = dmwidthPixels;

return mScreenWidth;

}

public static int getWindowHeigh(Context context){

// 获取屏幕分辨率

WindowManager wm = (WindowManager) (contextgetSystemService(ContextWINDOW_SERVICE));

DisplayMetrics dm = new DisplayMetrics();

wmgetDefaultDisplay()getMetrics(dm);

int mScreenHeigh = dmheightPixels;

return mScreenHeigh;

}

}

以上就是关于怎么获得一个Imageview的大小全部的内容,包括:怎么获得一个Imageview的大小、Android-屏幕适配全攻略(绝对详细)(一)、android获取屏幕的分辨率方法有几种等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9789408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存