Eng*_*uad 4 java swing serialization android image-processing
我正在开发一个Android应用程序,这是一个测验.另一方面,我正在开发一个完全基于Swing的桌面工具.桌面工具用于插入测验的问题,并生成一个序列化的目标文件,其中包含所有问题.我曾经java.awt.Image拿着附有问题的图像.
不幸的是,当我完成桌面工具的开发并转到Android端时,我发现Android没有java.awt.Image.所以我的问题是,无论如何要包含java.awt.Image在Android应用程序中?或者除了支持Swing组件之外,Java和Android中还有另一个可用于处理Image的类吗?或者至少,有没有办法解决我遇到的问题?
注意:您可能想知道为什么我要序列化对象而不仅仅是从XML或数据库中提取问题.那是因为,我需要将树数据结构作为问题的类别; 每个类别都有一个子类别旁边的问题列表.
这是解决方案:BufferedImage在Java端使用并将其转换为字节数组,然后在Android端获取字节数组并将其转换为Bitmap.
Java方面:
public static byte[] imageToByteArray(BufferedImage image) throws IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
return baos.toByteArray();
}
/*
public static BufferedImage byteArrayToImage(byte[] imageArray) throws IOException
{
return ImageIO.read(new ByteArrayInputStream(imageArray));
}
*/
Run Code Online (Sandbox Code Playgroud)
Android方面:
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inDither = true;
opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
byte[] imageByteArray = getImageByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(imageByteArray, 0, imageByteArray.length, opt);
imageView.setImageBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9581 次 |
| 最近记录: |