Java 如何在android中获取可绘制图像的大小

Java 如何在android中获取可绘制图像的大小,java,android,android-image,Java,Android,Android Image,目前,我正在android中使用可绘制图像,现在我想以KB为单位获取可绘制图像的大小,我如何获得它,欢迎任何想法 在这里,我得到默认的应用程序图标并存储在一个可绘制的数组中,为每个图标创建一个新的文件以获得长度是一个好主意吗?请提出更好的主意,谢谢这里有个主意。将可绘制图像转换为字节数组。。。数组长度是可绘制图像的大小(以字节为单位)。不确定是否有更好的方法…这里有个主意。将可绘制图像转换为字节数组。。。数组长度是可绘制图像的大小(以字节为单位)。不确定是否有更好的方法…我想你必须把它做成一个文

目前,我正在android中使用可绘制图像,现在我想以KB为单位获取可绘制图像的大小,我如何获得它,欢迎任何想法


在这里,我得到默认的应用程序图标并存储在一个可绘制的数组中,为每个图标创建一个新的文件以获得长度是一个好主意吗?请提出更好的主意,谢谢这里有个主意。将可绘制图像转换为字节数组。。。数组长度是可绘制图像的大小(以字节为单位)。不确定是否有更好的方法…

这里有个主意。将可绘制图像转换为字节数组。。。数组长度是可绘制图像的大小(以字节为单位)。不确定是否有更好的方法…

我想你必须把它做成一个文件。但不确定它是否有效

File root = new File(Environment.getExternalStorageDirectory()
                            + File.separator + "temp" + File.separator);
                    root.mkdirs();
                    File file= new File(root, "temp.png");

FileOutputStream fOut = new FileOutputStream(file);
                                                 bmp.compress(Bitmap.CompressFormat.PNG, 100, fOut);//bmp is bitmap of ur image
                         fOut.flush();
                         fOut.close();

使用
file.length()
应该会给出文件大小。

我认为您必须将其设置为文件。但不确定它是否有效

File root = new File(Environment.getExternalStorageDirectory()
                            + File.separator + "temp" + File.separator);
                    root.mkdirs();
                    File file= new File(root, "temp.png");

FileOutputStream fOut = new FileOutputStream(file);
                                                 bmp.compress(Bitmap.CompressFormat.PNG, 100, fOut);//bmp is bitmap of ur image
                         fOut.flush();
                         fOut.close();

使用
file.length()

Drawable d;
long kbsize = ((BitmapDrawable)d).getBitmap().getByteCount() / 1024;

我不知道这是否适用于所有情况,但您可以使用:

Drawable d;
long kbsize = ((BitmapDrawable)d).getBitmap().getByteCount() / 1024;

嗨,lalit,我认为在这个问题本身没有任何明确的答案嗨,lalit,我认为在这个问题本身没有任何明确的答案,他想从drawable而不是sdcard.是的。我让他把它保存到sd卡上,并检查他想要的文件大小是从drawable而不是从sd卡上。我让他把它保存到sd卡上,然后检查文件大小,这是我知道的唯一方法。如果需要KB,只需将
array.length
除以1024即可嗨,亚历克斯,我通过这个技巧得到了预期的结果,谢谢你的回复。这是我知道的唯一方法。如果需要KB,只需将
array.length
除以1024即可嗨,alex,我通过这个技术得到了预期的结果,谢谢你的回复。