【Android/Java】src와 background의 차이

2981 단어 안드로이드자바

ImageView 또는 ImageButton으로 이미지 리소스를 설정할 때 사용



기본적으로는 background 로 자원을 지정하고 있었지만, 타인의 구현 소스에서는 src 를 사용하고 있었기 때문에 파악하고 있는 한의 차이를 확인한다.

Stack Overflow 에서 같은 질문이 히트했지만 거기에서 발췌하면

배경 지정


  • 리소스의 원래 크기 관계없이 지정한 width 및 height로 조정됨
  • <ImageButton
        android:id="@+id/button"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:background="@drawable/resource_button"/>
    



    ※실제의 세세한 조정은 생략

    src 지정


  • 리소스의 원래 크기로 표시됨
  • <ImageButton
        android:id="@+id/button"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/resource_button"
        android:background="#00000000"/>
    



    ※실제의 세세한 조정은 생략

    이 경우, 종횡은 60dp로 지정하고 있지만 자원 크기는 그것보다 크기 때문에 중간에 잘립니다. 만약 background 때와 같이 사이즈 조정하고 싶은 경우는 android:scaleType="fitCenter" 를 지정하면 OK

    Stack Overflow로 돌아가지만

    The src to an ImageView has additional features:
  • different scaling types
  • adjustViewBounds for setting bounds to match image dimensions
  • some transformations such as alpha-setting

  • 그렇듯이 src가 다양한 설정을 할 수있는 모습.

    또한 배경은 동적으로 바꿀 수 있으며 Java
    private ImageView view;
    /*
     *  中略
     */
    
    view.setBackgroundResource(R.drawable.resource_button); //画像リソースを指定する場合
    
    Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.btn, null);
    view.setBackground(drawable);     //drawableファイルを設定する場合
    
    view.setBackground(null);   //リソースをクリアする場合
    

    로 바꿀 수 있지만, 레이아웃 파일로 src 지정하면 위의 처리를 실행해도 반영되지 않는다. background 지정 내용의 전면에 src 지정 내용이 표시되는 모습.

    아래는 배경을 검정색으로 지정하고 src에 자원을 지정한 경우.
    <ImageView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/ic_launcher_foreground"
        android:background="@color/black"/>
    



    결론


  • 원본 자원의 종횡비를 유지하고 싶다면 src 사양이 최선입니다.
  • 동적으로 바꾸고 싶다면 background 지정 (src 지정한 자원을 동적으로 바꾸는 방법이 있는지 알 수 없음)

    시도한 환경


  • Android Studio4.1.2
  • Android10
  • 좋은 웹페이지 즐겨찾기