android:为什么imageview.getwidth()与图像资源宽度不对应?

hmmo2u0o  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(366)

我的包中有一个“image950.png”正方形图像,大小为950x950像素(小于我的屏幕宽度)。
当我这样设置时:

<ImageView
                android:id="@+id/myImageView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:visibility="visible"
                android:background="#FFFF00"
                android:src="@drawable/image950"
                />

当我检查myimageview的大小时:

int w = floorImageView.getWidth(); // returns 831 and not 950...
 int w1 = floorImageView.getMeasuredWidth(); // returns 831 and not 950...

我得到的是831像素而不是950像素(注:我开的是三星s20+)
为什么我会得到这个结果,如何得到预期的结果?
谢谢!

lxkprmvk

lxkprmvk1#

您需要使用位图来获取图像的大小:

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), 
        R.drawable.YOURIMAGE);

 Bitmap bitmap = bitmapOrg;
 ByteArrayOutputStream stream = new ByteArrayOutputStream();   
 bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);   
 byte[] imageInByte = stream.toByteArray(); 
 long lengthbmp = imageInByte.length;

相关问题