XML로 표시된 Android 비트맵 이미지 크기
XML 파일에서 비트맵을 다음과 같이 사용합니다.
<bitmap
android:src="@drawable/Icon"
android:gravity="center"/>
여기서 아이콘의 이미지 너비가 화면을 초과합니다.
안드로이드:width="100dp" 등을 사용해 보았습니다.하지만 작동이 안 돼요.
전체 XML 파일:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<stroke android:width="3dp" android:color="@color/black" />
<solid android:color="@color/bg_green" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/Icon"
android:gravity="center"/>
</item>
</layer-list>
위 비트맵의 너비와 높이를 줄이려면 어떻게 해야 합니까?
API 23 이상만 해당
그냥 사용.
<item
android:width="200dp"
android:height="200dp"
android:drawable="@drawable/splash_background"
android:gravity="center" />
대신
<item
android:left="200dp"
android:right="200dp">
<bitmap
android:src="@drawable/splash_background"
android:gravity="center" />
</item>
비트맵에 대한 너비 및 높이 매개 변수는 없지만 중력 및 항목 너비/높이를 사용하여 비트맵 크기를 설정할 수 있습니다.
<item
android:width="230dp"
android:height="70dp">
<bitmap
android:gravity="fill_horizontal|fill_vertical"
android:src="@drawable/screen" />
</item>
항목의 너비와 높이를 설정하고 중력을 이용하여 항목 내부의 비트맵을 조정할 수 있습니다.
이것이 오래된 질문이라는 것을 알고 있지만 아마도 누군가가 유용하다고 생각할 것입니다.
경고:
이미 코멘트에 언급되어 있듯이, 이 방법은 API 레벨 23 (Android 6.0) 이상에서만 동작합니다.
화면에 맞게 가로, 세로를 줄이고 정확한 치수를 설정할 필요가 없다면 간단하게 설정할 수 있습니다.left
그리고.right
상위 항목에 대해이렇게 하면 기본적으로 이미지 주변에 여백이 추가되어 공간을 덜 차지하게 됩니다.
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="20dp"
android:right="20dp">
<bitmap
android:src="@drawable/Icon"
android:gravity="center" />
</item>
</layer-list>
그러나 화면 해상도별로 다른 크기의 이미지를 업로드하는 것이 이상적입니다(예:hdpi
,xxhdpi
이 경우 프로그래밍 방식으로 크기를 설정할 필요가 전혀 없습니다.전체 목록은 여기서 보실 수 있습니다.
내 밉맵 크기를 내 실행 화면으로 조정하기 위해 사용하는 것입니다.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/colorPrimary"/>
<item
android:width="200dp"
android:height="200dp"
android:gravity="center">
<bitmap
android:gravity="fill"
android:src="@mipmap/ic_launcher"
android:mipMap="true"/>
</item>
</layer-list>
이런 식으로 해봐요, 전 효과가 있었어요.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="30dp"
android:height="30dp"
android:gravity="center"
>
<bitmap
android:src="@drawable/screen"/>
</item>
</layer-list>
Android Developers로부터 비트맵 XML에 크기를 변경할 수 있는 태그가 없다는 것을 알았습니다.GIMP와 같은 일부 그래픽 애플리케이션을 통해 이 작업을 수행해야 합니다. @Kevin Cooper가 이미 말했듯이, 이상적으로 다양한 화면 유형에 대해 다양한 리소스 세트(크기가 다른)를 생성해야 합니다.
그러나 여전히 의 너비 및 높이 특성을 사용하여 크기를 조정할 수 있습니다.ImageView
, 크기가 다른 비트맵을 만드는 대신:
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:scaleType="center"
android:src="@drawable/Icon" />
이 이미지를 다른 곳에서 재사용하려면 별도의 스타일을 만들어 재사용할 수 있습니다.
// in styles.xml
<style name="Icon24x24">
<item name="android:src">@drawable/Icon</item>
<item name="android:gravity">center</item>
<item name="android:layout_width">24dp</item>
<item name="android:layout_height">24dp</item>
</style>
// in layout.xml
<ImageView style="@style/Icon24x24"/>
재사용의 또 다른 방법은 하나에 대해 별도의 레이아웃 파일을 만드는 것일 수 있습니다.ImageView
다른 레이아웃에 포함시킬 수 있습니다.
이걸 사용하고 싶으시면bitmap
레이어 목록 안에, @케빈 쿠퍼의 답변을 보세요. 그가 패딩을 추가하는 것이 가능하다고 제안했기 때문입니다.layer list item
:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="20dp"
android:right="20dp">
<bitmap
android:src="@drawable/Icon"
android:gravity="center" />
</item>
</layer-list>
그리고 @Nicolo도 지적했듯이, API 23의 형태로 설정하는 것이 가능합니다.android:width
그리고.android:height"
그래서 타이핑으로 고쳤습니다.
<item
android:height= "250dp"
android:width= "250dp"
android:gravity="center">
<bitmap
android:gravity="fill_horizontal|fill_vertical"
android:src="@mipmap/ic_launcher"/>
</item>
Complete 솔루션은 이미지 경로를 복사하고 변경하기만 하면 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:gravity="center"
android:width="286dp"
android:height="176dp">
<bitmap
android:src="@drawable/logo"
android:gravity="fill_horizontal|fill_vertical" />
</item>
</layer-list>
이미지의 크기를 수동으로 조정한 다음 작업이 가능합니다.
: 1. 1 : android:background=
AppCompat Spinner/AppCompat에 합니다.
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="@dimen/input_height"
android:background="@drawable/shape_drop_down_normal"
/>
- 만들기
shape_drop_down_normal.xml
인에/drawable
2A) Spinner 비트맵에 ic_spinner_dropdown.png 그리기 가능한 리소스가 있는 경우
shape_drop_down_normal.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:width="20dp"
android:height="13dp"
android:gravity="end|center_vertical">
<bitmap
android:src="@drawable/ic_spinner_dropdown"
android:gravity="fill"
android:mipMap="true"/>
</item>
</layer-list>
2B) 스피너 비트맵에 대한 ic_spinner_dropdown_vector.xml 벡터 그리기 가능 리소스가 있는 경우
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:width="20dp"
android:height="13dp"
android:gravity="end|center_vertical"
android:drawable="@drawable/ic_spinner_dropdown_vector">
</item>
</layer-list>
경고!
안드로이드:width="20dp" 안드로이드:height="13dp"
계층 목록에서 API 23+가 필요합니다.
android:left="20dp"
android:right="13dp"
낮은 API 레벨의 경우 또는 단순히 너비 및 높이 제약 조건을 생략하고 벡터 드로잉 가능한 dp를 직접 설정합니다(모든 API 레벨에 대해 완벽하게 작동합니다).
언급URL : https://stackoverflow.com/questions/23079355/android-bitmap-image-size-in-xml
'programing' 카테고리의 다른 글
판다의 데이터 프레임별 그룹화 및 열 유지 방법 (0) | 2023.10.04 |
---|---|
사이트 루트 URL을 받으려면 어떻게 해야 합니까? (0) | 2023.09.24 |
Angular JS에서 ngBind, ngBindHtm & ngBindTemplate의 차이 (0) | 2023.09.24 |
jQuery $.cookie는 함수가 아닙니다. (0) | 2023.09.24 |
AngularJS로 중첩 JSON 액세스 (0) | 2023.09.24 |