2016-09-24 20 views
0

url에서 이미지를로드하고 sd 카드의 파일에 저장 한 다음 파일에서로드하고 이미지보기에 표시하고 싶습니다.피카소를 사용하여 URL에서 이미지 받기

그래서 피카소를 사용하여 이미지를로드하려고합니다. 그러나 이미지보기에는 표시되지 않습니다.

http://xesoftwares.co.in/contactsapi/profile_images/d34b638b93773140eb94d5f03c20237c.jpg

로드 이미지 사용 피카소 : 여기

는 URL입니다.

Picasso.with(MainActivity.this).load(url).into(profileImage); 

URL에서 이미지를 다운로드하는 방법. SD 카드에 파일로 저장 한 다음 파일에서 이미지를로드하여 이미지보기에 표시 하시겠습니까?

도와주세요. 감사합니다 ..

+1

정말 SD 카드에 저장 하시겠습니까? Picasa는 이미지를 표시하고 응용 프로그램 캐시에 저장할 때마다 다운로드됩니다. – Stallion

+0

ok 그러나 왜 작동하지 않습니까? @Stallion – Sid

+0

manifest 권한이있는 한 줄 이상의 관련된 전체 코드를 입력하십시오. – Stallion

답변

3

사용 글라이드 라이브러리를 자동으로 ..... 캐시에

Glide.with(context).load(url).into(profileImage); 

참고 이미지를 저장 - 당신이 로딩 이미지 인터넷을 필요로 만 처음. 이미지가 인터넷없이 작업을로드 할 때.

편집 : -이 Gradle을에게

compile 'com.github.bumptech.glide:glide:3.7.0' 

출력을 사용합니다 -

o

+0

라이브러리를 컴파일하는 경로? @sushildlh – Sid

+0

하지만 왜 피카소가 작동하지 않습니까? @sushildlh – Sid

+1

피카소가 잘 작동합니다 ... 기기의 OutMerroyExcepton이 LagCat 오류를 확인 할 수 있습니다 ..... 질문 중 업데이트 된 출력 .... – sushildlh

0

SD 카드에 저장하려면 매니페스트에서 SD 카드의 읽기 권한 쓰기를 사용하고 사용자에게 android 5.0+에 대한 권한을 요청해야합니다. 이 모든 것은 안드로이드 개발자 공식 웹 사이트에서 명확하게 문서화되어 있습니다. getApplicationContext로 변경 MainActivity.class()

+0

권한을 선언했습니다. 문제는로드가 발생하지 않는 것입니다[email protected] koleci – Sid

+0

내가 제안한 변화를 만들었습니까? –

+0

Picasso도 캐시에 저장됩니다. 글라이드가 필요 없다. –

0

는 추가 : 매니페스트 파일에서

<manifest ...> 
    <uses-permission android:name="android.permission.INTERNET" /> 

는 달리 소스를 다운로드 할 수 없습니다 . 저장하기 위해

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

: 당신은 SD 카드에 저장하려면

는 다른 권한이 필요합니다.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

나중에 해당 파일을 가져 오려면. 외부 디렉토리에 저장하려면 다음

, 당신이 시도 할 수 있습니다 :

public void setUpDirectory(String folderName,String source){ 

     File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+folderName); 

     if(!directory.exists() && !directory.isDirectory()) { 
      directory.mkdirs(); 
     } 

     URL imageurl = new URL(source); 
     Bitmap bitmap = BitmapFactory.decodeStream(imageurl.openConnection().getInputStream()); 
     saveFile(directory,bitmap); 
    } 


private void saveFile(File fileName,Bitmap bmp){ 


FileOutputStream outputStream = null; 
try { 
    outputStream = new FileOutputStream(fileName); 
    bmp.compress(Bitmap.CompressFormat.PNG, 100, outputStream); // 100 will be ignored 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
finally { 
    try { 
     if outputStream != null) { 
      outputStream .close(); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 


} 
0

를 사용하면 XML 제거에 이미지 뷰의 이미지를 배경으로 넣을 경우.

+0

댓글로 달거나 기존 답변을 수정하십시오. – Stallion

관련 문제