InsetDrawable
6742 단어 Android
InsetDrawable
업무 조사를 통과할 기회가 생겨서 InsetDrawable의 비망록입니다.
뷰의 Background에 표시되는 배경 이미지가 실제 뷰보다 작은 경우 유효합니다.뷰에 설정된 이미지는 작지만 터치 영역을 크게 찍고 싶습니다.그리고 나는 그 그림을 왼쪽으로 정렬해서 표시하고 싶다.디자이너에게 이런 이미지를 디자인해달라고 일부러 부탁하는 문제가 있어서 조사해 봤는데 어떻게 써야 할지 모르겠어요...
Drawable 리소스 정의
XML을 사용하여 InsetDrawable을 정의합니다.android: inset ~ 에서 View의 boundary 설정 값을 정의합니다.
inset_logo.xml<?xml version="1.0" encoding="utf-8"?>
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_launcher"
android:insetRight="72px"
android:insetLeft="-72px"/>
hdpi는 72px의 그림을 사용하기 때문입니다.insetRight에서 양의 값을 지정하면 원래의 이미지가 파괴된 표시가 된다.오른쪽에 설정값을 삽입해서 왼쪽에 표시하려면 insetLeft에서 같은 절대값의 음수를 지정해야 합니다.
Layout에서 Drawable 지정
activity_main.xml <ImageView
android:layout_width="216px"
android:layout_height="wrap_content"
android:src="@drawable/inset_logo"
android:background="#000000"/>
이 지정은 다음과 같이 아이콘을 왼쪽으로 정렬합니다.
InsetDrawable
기타
다만, 뷰의 하이라이트를 사용한 이미지보다 크면 잘 보이지 않아요...ImageView의 scaleType에서 fitStart를 지정한 내용을 비교하여 실제 설치한 결과를 위에 업로드합니다.
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.insetdrawable.app.MainActivity">
<TextView
android:text="View width 216px height 72px\nInsetDrawableを使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="wrap_content"
android:src="@drawable/inset_logo"
android:background="#000000"/>
<TextView
android:text="scaleType(fitStart)を使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="wrap_content"
android:scaleType="fitStart"
android:src="@drawable/ic_launcher"
android:background="#000000"/>
<TextView
android:text="View width 216px height 216px\nInsetDrawableを使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="216px"
android:src="@drawable/inset_logo"
android:background="#000000"/>
<TextView
android:text="scaleTypeを使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="216px"
android:scaleType="fitStart"
android:src="@drawable/ic_launcher"
android:background="#000000"/>
</LinearLayout>
응, 잘 모르겠어.
Reference
이 문제에 관하여(InsetDrawable), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sei10sa10/items/bc96c298f056cb1dea9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?xml version="1.0" encoding="utf-8"?>
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_launcher"
android:insetRight="72px"
android:insetLeft="-72px"/>
<ImageView
android:layout_width="216px"
android:layout_height="wrap_content"
android:src="@drawable/inset_logo"
android:background="#000000"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.insetdrawable.app.MainActivity">
<TextView
android:text="View width 216px height 72px\nInsetDrawableを使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="wrap_content"
android:src="@drawable/inset_logo"
android:background="#000000"/>
<TextView
android:text="scaleType(fitStart)を使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="wrap_content"
android:scaleType="fitStart"
android:src="@drawable/ic_launcher"
android:background="#000000"/>
<TextView
android:text="View width 216px height 216px\nInsetDrawableを使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="216px"
android:src="@drawable/inset_logo"
android:background="#000000"/>
<TextView
android:text="scaleTypeを使用"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="216px"
android:layout_height="216px"
android:scaleType="fitStart"
android:src="@drawable/ic_launcher"
android:background="#000000"/>
</LinearLayout>
Reference
이 문제에 관하여(InsetDrawable), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sei10sa10/items/bc96c298f056cb1dea9c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)