如何在Android中获取显示图像的宽度和高度?

费多(Fedor Tsyganov)

这个问题看似微不足道,并曾被问过很多次,但我找不到适合我的答案。

我有一个ImageViewGLSurfaceView被绘制在上面ImageView,当我按下一个按钮。

对于我来说,ImageView我传递aBitmap并将其缩小以免发生OutOfMemoryError异常。MyImageView与UI中的其他元素对齐,因此它拉伸了图像以填充宽度/高度(这就是我想要的)。

当我从改变ImageViewGLSurfaceView我得到黑色区域围绕我的形象曾经是我的透明ImageView,因为GLSurfaceView使得UI有一个洞,工作方式不同比平时元素它吸引我的形象,以黑色的背景,我并不需要它,因为我有自定义背景。

我来到了一个解决方案,一套LayoutParams用于GLSurfaceView编程和我使用的Bitmap宽度和高度,但我结束了一个更小的图像。我需要显示的图像的确切宽度和高度-不需要,ImageView因为它具有透明区域。

PS:我不是OpenGL专家,如果您有适用于OpenGL的解决方案,请共享它。

一种)

 _______________
|               |
|               |
|---------------|          <-
|   transparent |     
|---------------| <-            Entire
|               |               ImageView
|     Image     |   need
|               | only this
|---------------| <-
|   transparent |
|---------------|          <-
|               |
 ---------------

b)

 _______________
|               |
|               |
|---------------|       <-
|   black       |
|---------------|
|               |              
|    Image      |          GLSurfaceView
|               |
|---------------|
|   black       |
|---------------|       <-
|               |
 ---------------

ImageViewGLSurfaceView

<android.opengl.GLSurfaceView
    android:id="@+id/glsvImageHolder"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/horScrollImage"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="50dp"
    android:visibility="invisible" />
<ImageView
    android:id="@+id/ivImageHolder"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/horScrollImage"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="50dp"
    android:visibility="visible" />
道兹维
float widthPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 
                                pxToMm(ivImageHolder.getWidth(), context), 
                                getResources().getDisplayMetrics());

float heightPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 
                            pxToMm(ivImageHolder.getHeight(), context), 
                            getResources().getDisplayMetrics());

ViewGroup.LayoutParams layoutParams= glsvImageHolder.getLayoutParams();
layoutParams.width= (int) widthPx;
layoutParams.height= (int) heightPx;

glsvImageHolder.setLayoutParams(layoutParams);

像素到毫米

public static float pxToMm(final float px, final Context context)
{
    final DisplayMetrics dm = context.getResources().getDisplayMetrics();
    return px / TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1, dm);
}

使GLSurfaceView的宽度和高度为:wrap_content。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Android中获得可用的屏幕宽度和高度

如何在OpenCV中获取图像的宽度和高度?

在没有ImageObserver的Java中获取图像的高度和宽度

如何在Android中获取弹出菜单的高度和宽度?

如何在Flutter中确定图像的宽度和高度?

如何在指令和组件中获取元素的宽度/高度?

在Android中获取屏幕宽度和高度

如何在iOS中获取屏幕的宽度和高度?

无法在JavaScript中获取图像的高度和宽度

CKFinder如何在选择图像(文件:选择)时获取尺寸URL和尺寸(宽度/高度)?

在Android中获取屏幕的宽度和高度

如何在代码中传递图像的宽度和高度

如何在WebRTC中获取远程视频的宽度和高度

如何在网络工作者中获取图像的宽度和高度?

Swift:如何获取旋转图像的高度和宽度。

如何获取图像的宽度和高度像素,并使框大小相同?

如何从Glide获取图像的宽度和高度

如何在SwiftUI中设置图像的宽度和高度?

如何在SwiftUI中获取视图或屏幕的高度和宽度

如何从localhost网址读取图像并在javascript中获取其宽度和高度

查找可以在ImageView中显示的图像的最大高度和宽度

如何在Android中为sw600dp-port-tvdpi drawable指定图像的宽度和高度?

如何在引导程序中获取窗口的高度和宽度

如何在jQuery中获取图像高度宽度

如何在js中设置图像对象的高度和宽度

如何在图像C#中设置宽度和高度

如何在React Native上从uri获取图像的高度和宽度?

React Native - 如何从设备存储中获取图像大小(宽度和高度)?

Javascript,如何从 blob 中获取图像宽度和高度?