gpt4 book ai didi

android - 从存储在 sdcard (Android) 中的 png 文件创建位图

转载 作者:太空狗 更新时间:2023-10-29 14:26:57 25 4
gpt4 key购买 nike

我正在尝试从存储在 SD 卡上的 Png 文件创建位图,然后在 imageView 中设置该位图。但它不起作用。

代码如下:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;

import com.pxr.tutorial.xmltest.R;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import android.widget.ImageView;

public class Getbackground {
URL url;

public static long downloadFile(URL url2) {
try {

URL url = new URL ("http://oranjelan.nl/oranjelan-bg.png");
InputStream input = url.openStream();{
try {

File fileOnSD=Environment.getExternalStorageDirectory();
String storagePath = fileOnSD.getAbsolutePath();
OutputStream output = new FileOutputStream (storagePath + "/oranjelanbg.png");
try {

byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
output.write(buffer, 0, bytesRead);
}
} finally {
output.flush();
output.close();
//----------------------------------------------------------------------------------------------------------
Bitmap BckGrnd = BitmapFactory.decodeFile(storagePath + "/oranjelanbg.png");
ImageView BackGround=(ImageView)findViewById(R.id.imageView1);
BackGround.setImageBitmap(BckGrnd);
//----------------------------------------------------------=-----------------------------------------------
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
input.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
} catch (MalformedURLException ex) {
throw new RuntimeException(ex);
} catch (IOException e) {
throw new RuntimeException(e);
}

return 0;
}
//-----------------------------------------------------------------------------------------
private static ImageView findViewById(int imageview1) {
// TODO Auto-generated method stub
return null;
}
//-----------------------------------------------------------------------------------------
}

文件确实成功加载到 SD 卡上,但我似乎无法在 View 中获取 img。

最佳答案

你不能..

ImageView BackGround=(ImageView)findViewById(R.id.imageView1);
BackGround.setImageBitmap(BckGrnd);

如何在非activity类Getbackground中获取ImageView的引用?

您只能在 MainUI Thread 中更新 UI 组件,如果它在非 Activity 类中,则只能使用该调用 Activity 类的引用(上下文)。

因此,在 Getbackground 完成后将此代码放入您的 Activity 类中。

关于android - 从存储在 sdcard (Android) 中的 png 文件创建位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com