2012-12-04 4 views
0

나는 하나의 벽지 응용 프로그램을 만들고 있으므로 자산 폴더에 일부 이미지를 넣습니다. 이 이미지를 버튼 클릭으로 하나씩 표시하고 SD 카드에 저장해야합니다.
내가 한 것 : ImageView와 WebView를 사용하여 이미지를 표시합니다. 첫째, WebView를 사용할 때 이미지 크기를 작게 표시하고 장치 창 크기에 따라 이미지를 표시해야하므로 이미지 크기 설정에 집중했습니다.
나는 다음과 같은 코드를 사용하지만 나는 또한 <src img="someimage.jpg" width=""100%"> 설정 화면자산에서 이미지를 보여주고 SD 카드에 저장하는 방법

myWebView.loadUrl("file:///android_asset/image.html"); 
    WebSettings settings = myWebView.getSettings(); 
    settings.setUseWideViewPort(true); 
    settings.setLoadWithOverviewMode(true); 

에 이미지를 조정하는 데 도움이되지 않았다 그러나 그것은 나에게 도움이되지 않았다.

다음 ImageView를 사용하여 이미지를 표시하고 다음 코드를 사용하여 적절한 크기로 이미지를 표시 할 수 있습니다.

InputStream ims = getAssets().open("31072011234.jpg"); 
     // load image as Drawable 
     Drawable d = Drawable.createFromStream(ims, null); 
     // set image to ImageView 
     imageView.setImageDrawable(d); 

내 질문 화면 이미지 뷰 또는 웹보기에 이미지를 표시 할 수있는 좋은 방법 인
이다? 이 이미지의 이름을 모르고 SD 카드에 저장할 때 모든 사진을 배열로 가져 오는 방법 힌트 또는 참조를주세요.
미리 감사드립니다.

+0

왜 자산에서 이미지를로드하고 있습니까? 왜 자원이 아닌가? –

+0

Ok .. 자산 또는 리소스 중 어떤 것이 가장 좋은 방법입니까? –

+0

webView는 무거운 구성 요소이므로 간단한 imageView를 사용하는 것이 좋습니다. –

답변

1

당신이 저장하는 res/drawable를 사용할 수 assets 폴더에 이미지를 넣을 필요가 없습니다 당신의 이미지에 액세스하고 resource으로 액세스하십시오.

아래 코드를 사용하면 이미지 파일의 이름을 알 필요없이 드로어 블에서 이미지에 액세스 할 수 있습니다.

다음 코드를 사용하여 이미지를 SD 카드에 저장할 수 있습니다.

File file = new File(extStorageDirectory, "filename.PNG"); 
outStream = new FileOutputStream(file); 
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
outStream.flush(); 
outStream.close(); 
+0

getField()가 drawable에서 모든 이미지를 가져올 수 있습니까? 이미지와 함께 .xml 파일이 있으면 이미지 만 표시되거나 .xml 파일도 표시됩니까? –

0

, 난 당신이 res/drawable 폴더에 이미지를 추가하고 사용하여 이미지를 표시하는 것이 좋습니다 (즉, 그것이 이미지보기라고 이유) ImageView 될 이미지를 보여줄 수있는 가장 좋은 방법 :

imageView.setImageResource(R.id.some_image); 

리소스를 사용하여 sdcard에 저장할 수 있습니다 :

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.id.some_image); 
String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); 
File file = new File(extStorageDirectory, "someimage.PNG"); 
outStream = new FileOutputStream(file); 
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
outStream.flush(); 
outStream.close(); 
관련 문제