2014-11-09 5 views
0

나는 서버 url에 이미지가있어 카드를 전달하고 표시하고 있습니다. 나는 LoaderImageView 라이브러리와 디스플레이를 사용하는 안드로이드에서 이것을했으나 Glass에서 나는 카드에 URL 링크를 전달하고있다.URL에서 이미지를 표시하는 방법

public static Drawable drawableFromUrl(String url) { 
     Bitmap x; 


     try { 
      HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); 
      connection.connect(); 
      InputStream input = connection.getInputStream(); 

      x = BitmapFactory.decodeStream(input); 
      return new BitmapDrawable(x); 

      } catch(MalformedURLException e) { 
      //Do something with the exception. 
     } 

     catch(IOException ex) { 
      ex.printStackTrace(); 
     } 
     return null; 

    } 


    View view = new CardBuilder(getBaseContext(), CardBuilder.Layout.TITLE) 
    .setText("TITLE Card") 
    // .setIcon(R.drawable.ic_phone) 
    .addImage(drawableFromUrl(link)) 
    .getView(); 

답변

1

From the doc, addImage 소요 그리기, INT, 또는 비트 맵 :하지만 난이 오류

코드 "유형의 CardBuilder의 방법 addImage (그리기)를 인수 (문자열) 적용 할 수 없습니다"를 얻었다. 그것은 String을 사용하지 않습니다.

AsyncTask 또는 스레드 또는 원하는대로 이미지를 다운로드하여 Drawable로 변환 할 수 있습니다. 그런 다음 addImage를 호출 할 수 있습니다. 예를 들어

: 내가 코드를 테스트하지만 당신은 아이디어를 얻을 희망하지 않은

// new DownloadImageTask().execute("your url...") 

private class DownloadImageTask extends AsyncTask<String, Void, Drawable> {  
    protected Drawable doInBackground(String... urls) { 
     String url = urls[0]; 
     return drawableFromUrl(url); 
    } 

    protected void onPostExecute(Drawable result) { 
     // yourCardBuilder.addImage(link) 
     // or start another activity and use the image there... 
    } 
} 

public static Drawable drawableFromUrl(String url) throws IOException { 
    Bitmap x; 
    HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); 
    connection.connect(); 
    InputStream input = connection.getInputStream(); 
    x = BitmapFactory.decodeStream(input); 
    return new BitmapDrawable(x); 
} 

.

또한 참조 :

편집 :

private Drawable drawableFromUrl(String url) { 
    try { 
     Bitmap bitmap; 
     HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); 
     connection.connect(); 
     InputStream input = connection.getInputStream(); 
     bitmap = BitmapFactory.decodeStream(input); 
     return new BitmapDrawable(bitmap); 
    } catch (IOException e) { 
     return null; 
    } 
} 

private class DownloadImageTask extends AsyncTask<String, Void, Drawable> { 

    protected Drawable doInBackground(String... urls) { 
     String url = urls[0]; 
     return drawableFromUrl(url); 
    } 

    protected void onPostExecute(Drawable result) { 
     stopSlider(); 
     if(result != null) { 
      mCardAdapter.setCards(createCard(getBaseContext(), result)); 
      mCardAdapter.notifyDataSetChanged(); 
     } 
    } 
} 

my GitHub repo에 내 전체 예제를 참조하십시오. SliderActivity이 도움이 될 수 있습니다.

+0

처리되지 않은 예외 유형 IOException에 오류가 발생했습니다. – karthees

+0

수정 된 코드를 확인하십시오. 그래도 작동하지 않습니다 .. – karthees

+0

내 편집을 확인하거나 GitHub의 전체 예제를 볼 수 있습니다. – pt2121