欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android使用线程获取网络图片的方法

程序员文章站 2024-03-04 11:22:05
本文为大家分享了android使用线程获取网络图片的具体代码,供大家参考,具体内容如下 androidmanifest.xml   ...

本文为大家分享了android使用线程获取网络图片的具体代码,供大家参考,具体内容如下

androidmanifest.xml   

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.zdcrobot.handlermessage">
  <uses-permission android:name="android.permission.internet"></uses-permission>
  <application
    android:allowbackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsrtl="true"
    android:theme="@style/apptheme">
    <activity
      android:name=".mainactivity"
      android:label="@string/app_name"
      android:theme="@style/apptheme.noactionbar">
      <intent-filter>
        <action android:name="android.intent.action.main" />
 
        <category android:name="android.intent.category.launcher" />
      </intent-filter>
    </activity>
  </application>
 
</manifest>

activity_main.xml   

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.coordinatorlayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fitssystemwindows="true"
  tools:context="com.zdcrobot.handlermessage.mainactivity">
 
  <linearlayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <button
      android:id="@+id/button1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="加载图片"/>
    <imageview
      android:id="@+id/image1"
      android:layout_width="match_parent"
      android:layout_height="500dp" />
  </linearlayout>
 
</android.support.design.widget.coordinatorlayout>

mainactivity.class   

package com.zdcrobot.handlermessage;
 
import android.graphics.bitmap;
import android.graphics.bitmapfactory;
import android.os.bundle;
import android.os.handler;
import android.os.message;
import android.support.v7.app.appcompatactivity;
import android.view.view;
import android.widget.button;
import android.widget.imageview;
 
import java.io.ioexception;
import java.io.inputstream;
import java.net.httpurlconnection;
import java.net.malformedurlexception;
import java.net.url;
 
public class mainactivity extends appcompatactivity {
  private button button;
  private imageview imageview;
  private string imagpath = "http://pica.nipic.com/2007-11-09/200711912453162_2.jpg";
  private final int is_finish = 1;
  private handler handler = new handler(){
    @override
    public void handlemessage(message msg) {
      bitmap bitmap = (bitmap)msg.obj;
      imageview.setimagebitmap(bitmap);
    }
  };
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
    button = (button)findviewbyid(r.id.button1);
    imageview = (imageview)findviewbyid(r.id.image1);
    button.setonclicklistener(new view.onclicklistener() {
      @override
      public void onclick(view v) {
        new thread(new myclass()).start();
      }
    });
  }
 
  public class myclass implements runnable{
 
    @override
    public void run() {
      bitmap bitmap = null;
      try {
        url url = new url(imagpath);
        httpurlconnection httpurlconnection = (httpurlconnection)url.openconnection();
        httpurlconnection.setdoinput(true);
        httpurlconnection.connect();
        inputstream inputstream = httpurlconnection.getinputstream();
        bitmap = bitmapfactory.decodestream(inputstream);
      } catch (malformedurlexception e) {
        e.printstacktrace();
      } catch (ioexception e) {
        e.printstacktrace();
      }
      message message = message.obtain();
      message.obj = bitmap;
      message.what = is_finish;
      handler.sendmessage(message);
    }
  }
}

以上就是本文的全部内容,希望对大家学习android软件编程有所帮助。