Drawable의 aray를 xml 파일로 정의하여 보기 속성으로 읽기
14115 단어 Android
이걸 동시에 하면 2시간 정도 귀찮아서 적어놨어요.
컨텐트
ScrollView를 상속하는 개인 관점 ScrollDrawableView 만들기
drawables라는 이름의 독특한 속성을 부여하다
Drawables 속성을 Drawable의 aray로 설정하는 경우
Aray의 내용을 ScrollView에 자동으로 펼치면 화면 스크롤을 통해 Drawable의 이미지 파일을 볼 수 있습니다.
완성되면 그렇습니다.화면을 스크롤하여 이미지를 볼 수 있습니다.
Drawable의 aray xml 파일
res/drawable에 a.png에서 u.pg로 표시됩니다.drawables
라는 이름의 아리에는 <item>@drawable/a</item>
와 항목만 열거되어 있으니 일단 써 보세요.
arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="pictures">
<item>@drawable/a</item>
<item>@drawable/b</item>
<item>@drawable/c</item>
<item>@drawable/d</item>
<item>@drawable/e</item>
<item>@drawable/f</item>
<item>@drawable/g</item>
<item>@drawable/h</item>
<item>@drawable/i</item>
<item>@drawable/j</item>
<item>@drawable/k</item>
<item>@drawable/l</item>
<item>@drawable/m</item>
<item>@drawable/n</item>
<item>@drawable/o</item>
<item>@drawable/p</item>
<item>@drawable/q</item>
<item>@drawable/r</item>
<item>@drawable/s</item>
<item>@drawable/t</item>
<item>@drawable/u</item>
</array>
</resources>
사용자 정의 속성을 정의하는 xml 파일
attrs.xml<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ScrollDrawableView">
<attr name="drawables" format="reference" />
</declare-styleable>
</resources>
declare-styleable
의name는 무엇이든지 가능하며 이해하기 쉽도록 자신이 독립적으로 제작한 시야류의 유형명과 용도를 적는 것이 좋다.attr
의format에는 문자열의string, 수치의integer 등 몇 가지 전용 값이 있는데 Drawable에는 이 값이 없기 때문에 선택reference
합니다.
이렇게 하면 자신의 속성을 정의할 수 있다.
레이아웃 xml 파일
응용 프로그램의 포장 이름은com이다.example입니다.
MainActivity의 레이아웃에 사용되는 activitymain.xml.
com.example.view.ScrollDrawableView는 ScrollView의 자체 제작 뷰를 상속합니다.
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/com.example"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.example.view.ScrollDrawableView
android:id="@+id/picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
custom:drawables="@array/pictures" />
</LinearLayout>
고유 속성xmlns:custom="http://schemas.android.com/apk/res/com.example"
을 사용하여 네임스페이스를 설정합니다.
이렇게 하면 자신이 정의한 속성은custom이라는 이름 공간에서 사용할 수 있기 때문에 custom:drawables="@array/drawables"
를 보기로 설정합니다.
그런 다음 ScrollDrawarbleView 클래스에서 drawables 속성으로 지정된 aray의 Drawable 설정을 ImageView에 사용할 코드만 씁니다.
독립형 뷰로 독립형 속성 해석하기
구조기의 매개 변수AttributeSet attrs
를 사용하여 설정된 속성에서 혼자 만든 속성을 찾아 이 속성의 값으로 지정된aray를 획득하는 절차입니다.
중간에 나오기R.styleable.ScrollDrawableView_drawables
R.java에 자동 생성
attr.xml로 정의된declare-styleable의name의ScrollDrawableView
와
attra의name drawables
는 ""를 참고하십시오.
혼자 속성을 만들었을 때 마음대로 결정할 수 있기 때문에 조금 어려워요.
ScrollDrawableViewpackage com.example.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import com.example.R;
public class ScrollDrawableView extends ScrollView {
private final int ELEMENT_WIDTH_HEIGHT = getResources().getDimensionPixelSize(R.dimen.side_length);
private final LayoutParams ELEMENT_LAYOUT_PARAMS = new LayoutParams(ELEMENT_WIDTH_HEIGHT, ELEMENT_WIDTH_HEIGHT);
public ScrollDrawableView(Context context, AttributeSet attrs) {
super(context, attrs);
// ScrollViewは中に1つしかビューを持てないので、LinearLayoutの中にDrawableのarrayを入れていくことにする
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.VERTICAL);
// ビューのdrawables属性の値として指定されている、drawableのarrayのリソースIDを取得
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ScrollDrawableView);
int resourceId = typedArray.getResourceId(R.styleable.ScrollDrawableView_drawables, -1);
typedArray.recycle();
// arrayの中身のDrawableをImageViewにセットして使用
TypedArray drawableArray = getResources().obtainTypedArray(resourceId);
int length = drawableArray.length();
for (int i = 0; i < length; i++) {
Drawable drawable = drawableArray.getDrawable(i);
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(ELEMENT_LAYOUT_PARAMS);
imageView.setImageDrawable(drawable);
linearLayout.addView(imageView);
}
drawableArray.recycle();
addView(linearLayout);
}
}
활용단어참조
setContentView에 판면 디자인의 xml 파일을 설정했을 뿐이지만, 먼저 쓰십시오.
MainActivity.javapackage com.example;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Reference
이 문제에 관하여(Drawable의 aray를 xml 파일로 정의하여 보기 속성으로 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/arai-wa/items/aa595ae7807b8c52c314
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
res/drawable에 a.png에서 u.pg로 표시됩니다.
drawables
라는 이름의 아리에는 <item>@drawable/a</item>
와 항목만 열거되어 있으니 일단 써 보세요.arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="pictures">
<item>@drawable/a</item>
<item>@drawable/b</item>
<item>@drawable/c</item>
<item>@drawable/d</item>
<item>@drawable/e</item>
<item>@drawable/f</item>
<item>@drawable/g</item>
<item>@drawable/h</item>
<item>@drawable/i</item>
<item>@drawable/j</item>
<item>@drawable/k</item>
<item>@drawable/l</item>
<item>@drawable/m</item>
<item>@drawable/n</item>
<item>@drawable/o</item>
<item>@drawable/p</item>
<item>@drawable/q</item>
<item>@drawable/r</item>
<item>@drawable/s</item>
<item>@drawable/t</item>
<item>@drawable/u</item>
</array>
</resources>
사용자 정의 속성을 정의하는 xml 파일
attrs.xml<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ScrollDrawableView">
<attr name="drawables" format="reference" />
</declare-styleable>
</resources>
declare-styleable
의name는 무엇이든지 가능하며 이해하기 쉽도록 자신이 독립적으로 제작한 시야류의 유형명과 용도를 적는 것이 좋다.attr
의format에는 문자열의string, 수치의integer 등 몇 가지 전용 값이 있는데 Drawable에는 이 값이 없기 때문에 선택reference
합니다.
이렇게 하면 자신의 속성을 정의할 수 있다.
레이아웃 xml 파일
응용 프로그램의 포장 이름은com이다.example입니다.
MainActivity의 레이아웃에 사용되는 activitymain.xml.
com.example.view.ScrollDrawableView는 ScrollView의 자체 제작 뷰를 상속합니다.
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/com.example"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.example.view.ScrollDrawableView
android:id="@+id/picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
custom:drawables="@array/pictures" />
</LinearLayout>
고유 속성xmlns:custom="http://schemas.android.com/apk/res/com.example"
을 사용하여 네임스페이스를 설정합니다.
이렇게 하면 자신이 정의한 속성은custom이라는 이름 공간에서 사용할 수 있기 때문에 custom:drawables="@array/drawables"
를 보기로 설정합니다.
그런 다음 ScrollDrawarbleView 클래스에서 drawables 속성으로 지정된 aray의 Drawable 설정을 ImageView에 사용할 코드만 씁니다.
독립형 뷰로 독립형 속성 해석하기
구조기의 매개 변수AttributeSet attrs
를 사용하여 설정된 속성에서 혼자 만든 속성을 찾아 이 속성의 값으로 지정된aray를 획득하는 절차입니다.
중간에 나오기R.styleable.ScrollDrawableView_drawables
R.java에 자동 생성
attr.xml로 정의된declare-styleable의name의ScrollDrawableView
와
attra의name drawables
는 ""를 참고하십시오.
혼자 속성을 만들었을 때 마음대로 결정할 수 있기 때문에 조금 어려워요.
ScrollDrawableViewpackage com.example.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import com.example.R;
public class ScrollDrawableView extends ScrollView {
private final int ELEMENT_WIDTH_HEIGHT = getResources().getDimensionPixelSize(R.dimen.side_length);
private final LayoutParams ELEMENT_LAYOUT_PARAMS = new LayoutParams(ELEMENT_WIDTH_HEIGHT, ELEMENT_WIDTH_HEIGHT);
public ScrollDrawableView(Context context, AttributeSet attrs) {
super(context, attrs);
// ScrollViewは中に1つしかビューを持てないので、LinearLayoutの中にDrawableのarrayを入れていくことにする
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.VERTICAL);
// ビューのdrawables属性の値として指定されている、drawableのarrayのリソースIDを取得
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ScrollDrawableView);
int resourceId = typedArray.getResourceId(R.styleable.ScrollDrawableView_drawables, -1);
typedArray.recycle();
// arrayの中身のDrawableをImageViewにセットして使用
TypedArray drawableArray = getResources().obtainTypedArray(resourceId);
int length = drawableArray.length();
for (int i = 0; i < length; i++) {
Drawable drawable = drawableArray.getDrawable(i);
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(ELEMENT_LAYOUT_PARAMS);
imageView.setImageDrawable(drawable);
linearLayout.addView(imageView);
}
drawableArray.recycle();
addView(linearLayout);
}
}
활용단어참조
setContentView에 판면 디자인의 xml 파일을 설정했을 뿐이지만, 먼저 쓰십시오.
MainActivity.javapackage com.example;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Reference
이 문제에 관하여(Drawable의 aray를 xml 파일로 정의하여 보기 속성으로 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/arai-wa/items/aa595ae7807b8c52c314
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ScrollDrawableView">
<attr name="drawables" format="reference" />
</declare-styleable>
</resources>
응용 프로그램의 포장 이름은com이다.example입니다.
MainActivity의 레이아웃에 사용되는 activitymain.xml.
com.example.view.ScrollDrawableView는 ScrollView의 자체 제작 뷰를 상속합니다.
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/com.example"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.example.view.ScrollDrawableView
android:id="@+id/picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
custom:drawables="@array/pictures" />
</LinearLayout>
고유 속성xmlns:custom="http://schemas.android.com/apk/res/com.example"
을 사용하여 네임스페이스를 설정합니다.이렇게 하면 자신이 정의한 속성은custom이라는 이름 공간에서 사용할 수 있기 때문에
custom:drawables="@array/drawables"
를 보기로 설정합니다.그런 다음 ScrollDrawarbleView 클래스에서 drawables 속성으로 지정된 aray의 Drawable 설정을 ImageView에 사용할 코드만 씁니다.
독립형 뷰로 독립형 속성 해석하기
구조기의 매개 변수AttributeSet attrs
를 사용하여 설정된 속성에서 혼자 만든 속성을 찾아 이 속성의 값으로 지정된aray를 획득하는 절차입니다.
중간에 나오기R.styleable.ScrollDrawableView_drawables
R.java에 자동 생성
attr.xml로 정의된declare-styleable의name의ScrollDrawableView
와
attra의name drawables
는 ""를 참고하십시오.
혼자 속성을 만들었을 때 마음대로 결정할 수 있기 때문에 조금 어려워요.
ScrollDrawableViewpackage com.example.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import com.example.R;
public class ScrollDrawableView extends ScrollView {
private final int ELEMENT_WIDTH_HEIGHT = getResources().getDimensionPixelSize(R.dimen.side_length);
private final LayoutParams ELEMENT_LAYOUT_PARAMS = new LayoutParams(ELEMENT_WIDTH_HEIGHT, ELEMENT_WIDTH_HEIGHT);
public ScrollDrawableView(Context context, AttributeSet attrs) {
super(context, attrs);
// ScrollViewは中に1つしかビューを持てないので、LinearLayoutの中にDrawableのarrayを入れていくことにする
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.VERTICAL);
// ビューのdrawables属性の値として指定されている、drawableのarrayのリソースIDを取得
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ScrollDrawableView);
int resourceId = typedArray.getResourceId(R.styleable.ScrollDrawableView_drawables, -1);
typedArray.recycle();
// arrayの中身のDrawableをImageViewにセットして使用
TypedArray drawableArray = getResources().obtainTypedArray(resourceId);
int length = drawableArray.length();
for (int i = 0; i < length; i++) {
Drawable drawable = drawableArray.getDrawable(i);
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(ELEMENT_LAYOUT_PARAMS);
imageView.setImageDrawable(drawable);
linearLayout.addView(imageView);
}
drawableArray.recycle();
addView(linearLayout);
}
}
활용단어참조
setContentView에 판면 디자인의 xml 파일을 설정했을 뿐이지만, 먼저 쓰십시오.
MainActivity.javapackage com.example;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Reference
이 문제에 관하여(Drawable의 aray를 xml 파일로 정의하여 보기 속성으로 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/arai-wa/items/aa595ae7807b8c52c314
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package com.example.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import com.example.R;
public class ScrollDrawableView extends ScrollView {
private final int ELEMENT_WIDTH_HEIGHT = getResources().getDimensionPixelSize(R.dimen.side_length);
private final LayoutParams ELEMENT_LAYOUT_PARAMS = new LayoutParams(ELEMENT_WIDTH_HEIGHT, ELEMENT_WIDTH_HEIGHT);
public ScrollDrawableView(Context context, AttributeSet attrs) {
super(context, attrs);
// ScrollViewは中に1つしかビューを持てないので、LinearLayoutの中にDrawableのarrayを入れていくことにする
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setOrientation(LinearLayout.VERTICAL);
// ビューのdrawables属性の値として指定されている、drawableのarrayのリソースIDを取得
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ScrollDrawableView);
int resourceId = typedArray.getResourceId(R.styleable.ScrollDrawableView_drawables, -1);
typedArray.recycle();
// arrayの中身のDrawableをImageViewにセットして使用
TypedArray drawableArray = getResources().obtainTypedArray(resourceId);
int length = drawableArray.length();
for (int i = 0; i < length; i++) {
Drawable drawable = drawableArray.getDrawable(i);
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(ELEMENT_LAYOUT_PARAMS);
imageView.setImageDrawable(drawable);
linearLayout.addView(imageView);
}
drawableArray.recycle();
addView(linearLayout);
}
}
setContentView에 판면 디자인의 xml 파일을 설정했을 뿐이지만, 먼저 쓰십시오.
MainActivity.java
package com.example;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Reference
이 문제에 관하여(Drawable의 aray를 xml 파일로 정의하여 보기 속성으로 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arai-wa/items/aa595ae7807b8c52c314텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)