Android中怎么获得ImageView控件显示的图片宽高

public static Rect getImageDisplayRect(ImageView imageView) {
        // 得到imageview中的矩阵,准备得到drawable的拉伸比率
        Matrix m = imageView.getImageMatrix();
        float[] values = new float[10];
        m.getValues(values);

        // drawable的本身宽高
        Drawable drawable = imageView.getDrawable();
        float originalWidth = drawable.getIntrinsicWidth();
        float originalHeight = drawable.getIntrinsicHeight();

        //Image在绘制过程中的变换矩阵,从中获得x和y方向的缩放系数  value[0],[4]
        //得到drawable的实际显示时的宽高
        int displayWidth = (int) (originalWidth * values[0]);
        int displayHeight = (int) (originalHeight * values[4]);

        // 计算出对应的Rect
        Rect rect = new Rect();
        rect.left = (int) ((originalWidth - displayWidth) / 2);
        rect.top = (int) ((originalHeight - displayHeight) / 2);
        rect.right = rect.left + displayWidth;
        rect.bottom = rect.top + displayHeight;

        return rect;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容