我正在从服务器下载图像并将其存储在我的internal_storage文件夹中。但下载的图像尺寸为(宽度800 *高度534)像素,而internal_storage图像尺寸为(宽度) 400 *身高267)。为什么不以实际大小的像素存储图像大小(宽度800 *高度534)。
以下是我从服务器下载图片的代码
str_DownLoadUrl = "http://103.24.4.60/CLASSNK1/MobileService.svc/DownloadFile/FileName/3_20150928162252018.png";
download_PngFile(str_DownLoadUrl);
void download_PngFile(String fileUrl) {
try {
URL ImgUrl = new URL(fileUrl);
HttpURLConnection conn = (HttpURLConnection) ImgUrl.openConnection();
conn.connect();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap imagenObtenida = BitmapFactory.decodeStream(conn.getInputStream(), null, options);
File file = new File(newFolder, imageName);
if (file.exists()) file.delete();
try
{
FileOutputStream out = new FileOutputStream(file);
imagenObtenida.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
int imagenObtenidaW = imagenObtenida.getWidth();
int imagenObtenidaH = imagenObtenida.getHeight();
Log.e("imagenObtenidaW " ," = +" + imagenObtenidaW + " imagenObtenidaH = " + imagenObtenidaH);
} catch (Exception e) {
}
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
会发生这种情况,因为您使用BitmapFacotory
选项inSampleSize
的选项属性。当您使用inSampleSize = 2
时,您的图片将变为原始高度和宽度的1/2 。因此,要保持原始尺寸,您需要将其设置为1
,或者只需删除它并在null
函数中以decodeStream
传递。
答案 1 :(得分:0)
options.inSampleSize = 2;
docs说 - 如果设置为值>如图1所示,请求解码器对原始图像进行二次采样,返回较小的图像以节省存储器。
所以尝试将其设置为1并查看是否有帮助
答案 2 :(得分:0)
为什么不使用Picasso而不是编写自定义代码,到目前为止,请查看它是非常简单和强大的库。
答案 3 :(得分:0)
尝试这种方式,只需按照http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
进行操作即可sqlcmd = New SqlCommand("SELECT Column1 from Table", con)
sqldr = sqlcmd.ExecuteReader
TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
While sqldr.Read
TextBox1.AutoCompleteCustomSource.Add(sqldr("Column1").ToString())
End While
或强>
Aquery也用于图像加载,下载aquery jar并将其导入项目并尝试这种方式
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.id.myimage, options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
String imageType = options.outMimeType;