androidurl显示图片
‘壹’ android中怎么跳转到相册获取照片并得到url
方法/步骤
1
如下图所示,需要根据URL地址获取图片加载到图中Anroid机器人所在的位置,这是运行前的效果:
2
首先需根据URL地址获取图片,如下所示,urladdr即为图片地址,返回Drawable对象:
//download image from network using @urladdress
private Drawable loadImageFromNetwork(String urladdr) {
// TODO Auto-generated method stub
Drawable drawable = null;
try{
//judge if has picture locate or not according to filename
drawable = Drawable.createFromStream(new URL(urladdr).openStream(), "image.jpg");
}catch(IOException e){
Log.d("test",e.getMessage());
}
if(drawable == null){
Log.d("test","null drawable");
}else{
Log.d("test","not null drawable");
}
return drawable;
}
3
获取到图片后,需要更新主线程UI资源,考虑到时间以及界面反应延迟等,所以采用线程加以处理,如下图所示:
// image
new Thread(new Runnable(){
Drawable drawable = loadImageFromNetwork(urladdress);
@Override
public void run(){
//post() is quite important,update pictures in UI main thread
image.post(new Runnable(){
@Override
public void run(){
//TODO Auto-generated method stub
image.setImageDrawable(drawable);
}
});
}
//download image from network using @urladdress
private Drawable loadImageFromNetwork(String urladdr) {
//... 略(如 1 中所示)
}
}).start(); //线程启动
4
说明:在上述示例代码中,image是ImageView类的一个对象,也就是APP中的一个显示图像组件,利用获取到的图片drawable去更新image,运行效果如下所示:
‘贰’ android根据url获取网络图片报错
这个看着是https协议的URL,用普通的http请求就报错了,我这里只有请求https到流的代码,给你先看看,把流再转成文件 就可以了
java">
@SuppressLint("ParserError")
(StringdownUrl,StringpostStr)throwsIOException{
Stringres="";
HttpsURLConnection.setDefaultHostnameVerifier(newNullHostNameVerifier());
SSLContextcontext=null;
try{
context=SSLContext.getInstance("TLS");
}catch(NoSuchAlgorithmExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
try{
context.init(null,newX509TrustManager[]{newmyX509TrustManager()},newSecureRandom());
}catch(KeyManagementExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
URLdUrl=newURL(downUrl);
HttpsURLConnectiondConn=(HttpsURLConnection)dUrl.openConnection();
dConn.setDoInput(true);
if(postStr!=""){
dConn.setDoOutput(true);
dConn.setRequestMethod("POST");
}
dConn.connect();
if(postStr!=""){
try{
BufferedWriterout=newBufferedWriter(newOutputStreamWriter(
dConn.getOutputStream()));
out.write(postStr);
out.flush();
}catch(Exceptione){
StringerrMsg=e.getMessage();
if(null!=errMsg){
Toasttoast=Toast.makeText(null,errMsg,Toast.LENGTH_LONG);
toast.show();
}
e.printStackTrace();
}
}
BufferedInputStreamin=newBufferedInputStream(dConn.getInputStream());
returnin;
}
{
@Override
publicbooleanverify(Stringhostname,SSLSessionsession){
//Log.i("RestUtilImpl","Approvingcertificatefor"+hostname);
returntrue;
}
}
{
@Override
publicX509Certificate[]getAcceptedIssuers(){
returnnull;
}
@Override
publicvoidcheckClientTrusted(X509Certificate[]chain,StringauthType)
throwsCertificateException{
//TODOAuto-generatedmethodstub
}
@Override
publicvoidcheckServerTrusted(X509Certificate[]chain,StringauthType)
throwsCertificateException{
//TODOAuto-generatedmethodstub
}
}
‘叁’ android原生开发,从http下载图片,下载失败或成功提示,并放图片显示出来。
下载类
public class DownFile
{
public InputStream getInput(String path)
{
InputStream in = null;
try {
URL url = new URL(path);
HttpURLConnection hcon = (HttpURLConnection) url.openConnection();
in = hcon.getInputStream();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return in;
}
public int downIamge(String path,String name)
{
InputStream in = getInput(path);
int type = 0;
File ex = Environment.getExternalStorageDirectory();
try {
FileOutputStream out = new FileOutputStream(new File(ex.getAbsoluteFile()+File.separator+name));
int len = 0;
byte[] bb = new byte[1024];
while((len = in.read(bb))!=-1)
{
out.write(bb,0,len);
}
out.close();
type = 1;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
type = 2;
}
return type;
}
}
2在另外一个activity里面调用这个方法DownFile().downIamge(path,name); 返回1就是下载成功 ,2 就显示下载失败
自己手写的 望采纳 不懂 可继续追问
‘肆’ android:URL网络下载图片问题,,源代码已经有权限了 电脑也有网络为啥就是在ImageView中显示不出来呢
因为你获取图片的时候访问网络了
而android4.0之后 访问网络智能在非主线程中使用,,
难道你这么写没报错吗?
‘伍’ 微信小程序分享 设置的URL图片地址不显示(安卓机上不显示)
微信小程序分享 onShareAppMessage 设置的 imageUrl 图片链接在安卓手机上不显示分享的图片,别人看到的分享是一片黑的
解决办法:
因为微信小程序在安卓手机上不兼容这种https 的链接,要改成http 就完美实现
这个图片链接不支持 https://xxx.png 需改成 http://xxx.png
string.replace('s','') 去掉 s
‘陆’ 怎样在java里用URL引入图片引入图片
URL对象中前而几个方法都非常容易理解,而该对象提供的openStream()可以读取该 URL资源的InputStream,通过该方法可以非常方便地读取远程资源。
下面的程序示范如何通过URL类读取远程资源:
1)只显示网络图片
1)只显示网络图片
引用图片处理的java类:
packagejun.king.urlgetimage;
importjava.io.InputStream;
importjava.net.URL;
importandroid.app.Activity;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.widget.ImageView;
{
Bitmapbitmap;
ImageViewimageview;
Handlerhandler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
if(msg.what==0x9527){
//显示从网上下载的图片
imageview.setImageBitmap(bitmap);
}
}
};
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageview=(ImageView)findViewById(R.id.imageView1);
//创建并启动一个新线程用于从网络上下载图片
newThread(){
@Override
publicvoidrun(){
try{
//创建一个url对象
URLurl=newURL("http://www..com/img/bdlogo.png");
//打开URL对应的资源输入流
InputStreamis=url.openStream();
//从InputStream流中解析出图片
bitmap=BitmapFactory.decodeStream(is);
//imageview.setImageBitmap(bitmap);
//发送消息,通知UI组件显示图片
handler.sendEmptyMessage(0x9527);
//关闭输入流
is.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}.start();
}
@Override
(Menumenu){
//Inflatethemenu;.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
@Override
(MenuItemitem){
//Handleactionbaritemclickshere.Theactionbarwill
///Upbutton,solong
//.xml.
intid=item.getItemId();
if(id==R.id.action_settings){
returntrue;
}
returnsuper.onOptionsItemSelected(item);
}
}
‘柒’ android怎么加载一个有图片的url
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("img");
‘捌’ 想问一下在Android studio里面怎么实现显示网络图片,就是输入一个网址,显示一张图片
使用第三方图片加载框架如picasso,使用很简单,以下几步即可完成你的需求。
在app的build.gradle文件中添加依赖
implementation 'com.squareup.picasso:picasso:2.71828'
传入网络图片地址,以及要在哪个ImageView上显示
Picasso.get().load(imageurl).into(mImageView);
很简单,通过以上步骤,就可以完成在Android studio里面怎么实现显示网络图片,就是输入一个网址,显示一张图片。
‘玖’ android如何显示多个网络上的图片(提供的是图片的url),按照一个列表的形式显示
你可以使用一个listview,自己定义下适配器。从网络上面下载图片,并显示