'이미지'에 해당되는 글 1건

  1. 2010.08.13 android ImageView에 테두리(border) 넣기 3
Android2010. 8. 13. 09:23

ImageView에 테두리를 넣는 방법이 필요하신 분이 있으실 것 같아서 공유합니다.
이 방법 외에도 다른 방법도 있을 것 같으니 참고 하시는 정도로 보시면 좋을 것 같습니다.

테두리가 없는 AlarmClcok의 이미지를 ImageView에 표시한 화면입니다.
 

ImageVIew에 테두리를 넣기위해서 ShapeDrawable을 이용합니다.
ShapeDrawble는 코드로 간단하게 색을체우거나 그라데이션 효과를 줄 수있는 기능을 제공합니다.
자세한 사항은 http://www.androidpub.com/2113 을 참고하세요

ShapeDrawble을 ImageVIew에 사용하기 위해서 image_border.xml을 만들어서 Drawable 폴더에 넣습니다.
 image_border.xml의 소스 입니다.
 <?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
  <solid android:color="#0fff"/>
    <stroke android:width="1px" android:color="#ffaeaeae" />
    <padding android:left="1px" android:top="1px"
            android:right="1px" android:bottom="1px" />
</shape>
간단하게 설명하면 solid는 해당 View를 채우는 설정입니다.
stroke는 View의 테두리를 설정해줍니다. padding은 view의 padding값을 설정해 줍니다.
위의 ShapeDrawable을 테두리를 설정해줄 ImageView에 지정을 해줍니다.

 해당 ImageView 소스입니다.
 <ImageView
     android:id="@+id/border_image"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="center_horizontal"
     android:src="@drawable/image_border"
     android:background="@drawable/clockdroid2_dial" />     

위의 소스를 적용한 화면입니다.


위의 화면과 같이 ImageView에 테두리가 들어간것을 확인 하실수 있습니다.
위에서와 같이 xml에 ShapeDrawable을 설정하지 않고 코드상에서 설정 하실수도 있습니다.
 ImageView iv = (ImageView)findViewById(R.id.border_image);
  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.clockdroid2_dial);
  iv.setBackgroundResource(R.drawable.image_border);
  iv.setImageBitmap(bitmap);

도움이 되셨으면 좋겠네요~

Posted by 위푸