안드로이드 개발 질문/답변
(글 수 45,052)
for (int i = 0; i < MapInfo.longitude.size(); i++) {
try {
drawable = Drawable.createFromStream((java.io.InputStream)new java.net.URL(MapInfo.imgUrl.get(i)).getContent(), null);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/4, drawable.getIntrinsicHeight()/4);
itemizedOverlay = new ItemizedOverlay(drawable, this);
overlayitem = new OverlayItem(new GeoPoint((int)(lat*1E6),(int)(lon*1E6)), "title", "위도 :" + lat + "\n" + " 경도 : " + lon );
overlayitem.setMarker(drawable);
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
}
웹에서 URL 이미지로 맵뷰에 나타내는 부분을 하고 있었는데요 ;
맵뷰에 나타나기는 하는데 사이즈가 조절이 안됩니다.
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/4, drawable.getIntrinsicHeight()/4);
이렇게 하면 크기가 1/4줄여져야 하는게 아닌가 하는데요 ;;
system.out.println(drawable.getIntrinsicWidth()) --------------->48 찍힘
system.out.println(drawable.getIntrinsicWidth()/4) --------------> 12 찍힘
ddms로 보니 줄긴 줄었는데 맵뷰에 나타나는 이미지는 그대로입니다.
웹에서 불러온 이미지는 다른 식으로 사이즈를 조절해야 하는것인지요?
한가지 질문이 더 있는데
drawable = getResourec........이렇게 해서 res에서 가져오는 방법이 있지 않습니까?
drawable = Drawable.createFromStream((java.io.InputStream)new java.net.URL(MapInfo.imgUrl.get(i)).getContent(), null);
웹에서 계속 불러오다보니 아무래도 속도가 떨어지는 것 같아요;
웹에서 이미지를 (40~100개)가져와서 맵에 나타낼때 좋은 방법이 있는지요;
try {
drawable = Drawable.createFromStream((java.io.InputStream)new java.net.URL(MapInfo.imgUrl.get(i)).getContent(), null);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/4, drawable.getIntrinsicHeight()/4);
itemizedOverlay = new ItemizedOverlay(drawable, this);
overlayitem = new OverlayItem(new GeoPoint((int)(lat*1E6),(int)(lon*1E6)), "title", "위도 :" + lat + "\n" + " 경도 : " + lon );
overlayitem.setMarker(drawable);
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
}
웹에서 URL 이미지로 맵뷰에 나타내는 부분을 하고 있었는데요 ;
맵뷰에 나타나기는 하는데 사이즈가 조절이 안됩니다.
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/4, drawable.getIntrinsicHeight()/4);
이렇게 하면 크기가 1/4줄여져야 하는게 아닌가 하는데요 ;;
system.out.println(drawable.getIntrinsicWidth()) --------------->48 찍힘
system.out.println(drawable.getIntrinsicWidth()/4) --------------> 12 찍힘
ddms로 보니 줄긴 줄었는데 맵뷰에 나타나는 이미지는 그대로입니다.
웹에서 불러온 이미지는 다른 식으로 사이즈를 조절해야 하는것인지요?
한가지 질문이 더 있는데
drawable = getResourec........이렇게 해서 res에서 가져오는 방법이 있지 않습니까?
drawable = Drawable.createFromStream((java.io.InputStream)new java.net.URL(MapInfo.imgUrl.get(i)).getContent(), null);
웹에서 계속 불러오다보니 아무래도 속도가 떨어지는 것 같아요;
웹에서 이미지를 (40~100개)가져와서 맵에 나타낼때 좋은 방법이 있는지요;
2010.12.29 13:30:14
인터넷 이미지 관련해서는 HashMap에 비트맵을 캐시로 저장해서 쓰는 방법이 있을 수 있겠네요 LinkedHashMap으로 LRU 캐시같은걸 만들어 주면 더욱 효율적이겠구요
2010.12.29 14:33:00
웹에서 불러온것은 이미지 변환이 왜 안돼는지는 알아내지 못했지만
URL myFileUrl = null;
try{
myFileUrl = new URL(MapInfo.imgUrl.get(i));
}catch(MalformedURLException e) {
e.printStackTrace();
}
try{
HttpURLConnection conn = (HttpURLConnection)myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
int length = conn.getContentLength();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
drawable = (Drawable)(new BitmapDrawable(bmImg));
}catch(IOException e){
e.printStackTrace();
}
bitmap으로 받아 drawable로 변환후 사이즈를 조절 하니 사이즈가 조절 됩니다. 속도도 조금 향상 되었구요;;
동네가수님께서 알려주신부분은 열심히 구글링 하고 있습니다 ㅠ.ㅠ 예제를 추천해주실수 있나요 ?;;



