Android 에서 네트워크 그림 보이 기
...에 있다
Android
인터넷 사진 을 표시 하 는 것 은 비교적 간단 하 다.View 에 대응 하 는 그림 을 불 러 오 는 작업 을 시작 할 때 통과 해 야 합 니 다.
setTag()
이 View 의 tag 를 그림 의 URL 로 설정 합 니 다.실제 이 그림 을 가 져 올 때 해당 URL 이 View 의 TAG 와 일치 하 는 지 확인 하고 일치 할 때 만 이 그림 을 이 View 에 실제 적용 합 니 다.
실례 1
Internet ImageDemoActivity.java 파일
package com . lenovo . robin . test ;import java . io . IOException ;import java . io . InputStream ;import java . net . HttpURLConnection ;import java . net . MalformedURLException ;import java . net . URL ;import android . app . Activity ;import android . graphics . Bitmap ;import android . graphics . BitmapFactory ;import android . os . AsyncTask ;import android . os . Bundle ;import android . widget . ImageView ;public class InternetImageDemoActivity extends Activity {Bitmap bmImg ;ImageView imView ;@Overridepublic void onCreate ( Bundle savedInstanceState ) {super . onCreate ( savedInstanceState );setContentView ( R . layout . internet_image_demo );imView = ( ImageView ) findViewById ( R . id . imageView1 );String imageUrl = "http://img6.ph.126.net/hBiG96B8egigBULxUWcOpA==/109212290980771276.jpg" ;final ImageView imageView = imView ;imageView . setTag ( imageUrl );ImageLoadedCallback callback = new ImageLoadedCallback () {@Overridepublic void loaded ( Bitmap bitMap , String url ) {// TODO Auto-generated method stubif (url.equals(imageView.getTag())) {imageView.setImageBitmap(bitMap);}}};new DownloadImageTask ( callback ). execute ( imageUrl );}}
class DownloadImageTask extends AsyncTask < String , Integer , Bitmap > {ImageLoadedCallback callback = null ;String url = null ;DownloadImageTask ( ImageLoadedCallback callback ) {this . callback = callback ;}protected Bitmap doInBackground ( String ... urls ) {URL myFileUrl = null ;Bitmap bitmap = null ;url = urls [ 0 ];try {myFileUrl = new URL ( url );} catch ( MalformedURLException e ) {e . printStackTrace ();}HttpURLConnection conn = null ;InputStream is = null ;try {conn = ( HttpURLConnection ) myFileUrl. openConnection ();conn . setDoInput ( true );conn . connect ();is = conn . getInputStream ();bitmap = BitmapFactory . decodeStream ( is );is . close ();} catch ( IOException e ) {e . printStackTrace ();}finally{if ( conn != null ){try {conn . connect ();} catch ( IOException e ) {// TODO Auto-generated catch blocke.printStackTrace();}conn=null;}if(is!=null){try {is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}is=null;}}return bitmap;}protected void onPostExecute ( Bitmap bitMap ) {callback . loaded ( bitMap , url );}}
interface ImageLoadedCallback {public void loaded ( Bitmap bitMap , String url );}
关于
AsyncTask请参照《 AsyncTask简介
》
布局文件internet_image_demo.xml
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"xmlns:tools = "http://schemas.android.com/tools"android:layout_width = "match_parent"android:layout_height = "match_parent" ><ImageViewandroid:id = "@+id/imageView1"android:layout_width = "match_parent"android:layout_height = "match_parent"android:layout_alignLeft = "@+id/button1"android:layout_below = "@+id/textView1"android:layout_marginTop = "34dp"/></RelativeLayout>
另外在AndroidManifest.xml中需要添加以下权限,以便访问网络
<uses-permission android:name="android.permission.INTERNET" />
끝!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.