여러 이미지를 배열로 처리(추가 있음)
11658 단어 AndroidStudio
htps : // m / k 스가와라 61 / ms / 7b1 베 c882 아 0272 c626b
참고로하겠습니다.
여러 이미지를 배열로 처리하는 방법을 시도했습니다.
①layout 파일(activity_main.xml)에 ImageView 추가//Imageview blankImage를 선언 (이대로는 아무것도 표시되지 않는다)
android:id="@+id/blankImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"/>
②app→res→drawable 파일 아래에 이미지를 배치(copipe) 10장의 고양이 이미지를 drawable에 copipe
③Values 파일 아래에 이미지를 배열로 취급하는 array 파일을 작성
app→res→valuse
values 파일을 마우스 오른쪽 버튼으로 클릭
→New→Values resource file을 클릭합니다.
→File name을 array로 하고 OK를 클릭
→array.xml의 내용을 다음과 같이 합니다
//caImagesリストを宣言 10個の猫画像データを格納
<array name = "catImages">
<item>@drawable/konekokakure</item>
<item>@drawable/nekonirami</item>
<item>@drawable/nekoyousumi</item>
<item>@drawable/konekomouhu</item>
<item>@drawable/nekobaua</item>
<item>@drawable/nekonozokimi</item>
<item>@drawable/nekomehurisou</item>
<item>@drawable/koenkomoutyo</item>
<item>@drawable/nekoutouto</item>
<item>@drawable/nekohukigen</item>
</array>
④Java 코드내(i+1)번째의 화상을 표시하는 처리를 추가 ImageView blankImage;
TypedArray typedArray;
Drawable drawable;
int i = 0;
//배열은 [0,1,2 ...]와 첫 번째가 0이므로 i = 0 일 때 첫 번째 이미지, i = 1 일 때 두 번째 이미지
//고양이 이미지의 배열에서 (i + 1) 번째 이미지를 선택하고 catImage에 설정 (표시)하고 숫자를 표시하는 메서드
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
·
·
·
blankImage = findViewById(R.id.blankImage);
//고양이 이미지의 리소스 배열 (10 개의 이미지 배열) 선언
typedArray = getResources().obtainTypedArray(R.array.catImages);
⑤Java의 코드 전체(*코드 수정한 것을 최하부에 추기합니다)라고 캡쳐한 동영상 앱 동작의 모습을 캡처한 동영상↓
htps : // 라고 해서 r. 이 m/i/s 타츠 s/1231957528071639040
package com.example.catswitch;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ImageView blankImage;
TextView numberTextView;
TypedArray typedArray;
Drawable drawable;
Button nextButton;
Button prevButton;
int i = 0;
//配列は[0,1,2・・・]と1番目が0になるので、i = 0の時 1番目の画像、 i = 1 の時2番目の画像
//猫画像の配列から(i + 1)番目の画像を選択してcatImageにセット(表示)し、numberを表示するメソッド
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
blankImage = findViewById(R.id.blankImage);
numberTextView = findViewById(R.id.numberTextView);
nextButton = findViewById(R.id.nextButton);
prevButton = findViewById(R.id.prevButtton);
//猫画像のリソースの配列(10個の画像の配列)
typedArray = getResources().obtainTypedArray(R.array.catImages);
//i = 0(初期値) (i + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
//nextButtonを押したときの挙動を設定 ViewクラスのOnClickListenerメソッドを上書き
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 9) {
//変数iに0を代入
i = 0;
//(0 + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
} else {
//変数iを1増加させる
i++;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
});
//prevボタンを押したときの挙動を設定
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 0) {
//変数iに9を代入
i = 9;
//(9 + 1)番目の画像を表示
catImageSelectShow();
} else {
//変数iを1減少させる
i--;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
});
}
}
activity_main.xml의 전체 코드↓
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
//Imageview blankImageを宣言(このままでは何も表示されない)
<ImageView
android:id="@+id/blankImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent" />
<TextView
android:id="@+id/numberTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="67dp"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/prevButtton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="33dp"
android:layout_marginBottom="67dp"
android:text="←"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/nextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="33dp"
android:layout_marginBottom="67dp"
android:text="→"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
(추기) 자바 코드를 조금 수정했습니다.
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 9) {
//変数iに0を代入
i = 0;
//(0 + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
} else {
//変数iを1増加させる
i++;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
나중에 이미지를 추가 할 수 있도록
i == 9 를 i == typedArray.length() - 1) 로 변경.
또한 catImageSelectShow(); 가 if 와 else 모두에 쓰여 있기 때문에
블록 밖으로 나왔습니다.
if(i == typedArray.length() - 1) {
//変数iに0を代入
i = 0;
} else {
//変数iを1増加させる
i++;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
소스 코드 전체↓
package com.catsw.catswitch;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ImageView blankImage;
TextView numberTextView;
TypedArray typedArray;
Drawable drawable;
Button nextButton;
Button prevButton;
int i = 0;
//猫画像の配列から(i + 1)番目の画像を選択してcatImageにセット(表示)し、numberを表示するメソッド
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
blankImage = findViewById(R.id.blankImage);
numberTextView = findViewById(R.id.numberTextView);
nextButton = findViewById(R.id.nextButton);
prevButton = findViewById(R.id.prevButtton);
//猫画像のリソースの配列を宣言
typedArray = getResources().obtainTypedArray(R.array.catImages);
//i = 0(初期値) (i + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
//nextButtonを押したときの挙動を設定 ViewクラスのOnClickListenerメソッドを上書き
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iが猫画像の(配列の要素数-1)に等しい時
if(i == typedArray.length() - 1) {
//変数iに0を代入
i = 0;
} else {
//変数iを1増加させる
i++;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
});
//prevボタンを押したときの挙動を設定
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(i == 0) {
//変数iに(猫画像の配列の要素数-1)を代入
i = typedArray.length() - 1;
} else {
//変数iを1減少させる
i--;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
});
}
}
Reference
이 문제에 관하여(여러 이미지를 배열로 처리(추가 있음)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KToushi/items/00dc1e5bca35cc51f804
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
③Values 파일 아래에 이미지를 배열로 취급하는 array 파일을 작성
app→res→valusevalues 파일을 마우스 오른쪽 버튼으로 클릭
→New→Values resource file을 클릭합니다.
→File name을 array로 하고 OK를 클릭
→array.xml의 내용을 다음과 같이 합니다
//caImagesリストを宣言 10個の猫画像データを格納
<array name = "catImages">
<item>@drawable/konekokakure</item>
<item>@drawable/nekonirami</item>
<item>@drawable/nekoyousumi</item>
<item>@drawable/konekomouhu</item>
<item>@drawable/nekobaua</item>
<item>@drawable/nekonozokimi</item>
<item>@drawable/nekomehurisou</item>
<item>@drawable/koenkomoutyo</item>
<item>@drawable/nekoutouto</item>
<item>@drawable/nekohukigen</item>
</array>
④Java 코드내(i+1)번째의 화상을 표시하는 처리를 추가 ImageView blankImage;
TypedArray typedArray;
Drawable drawable;
int i = 0;
//배열은 [0,1,2 ...]와 첫 번째가 0이므로 i = 0 일 때 첫 번째 이미지, i = 1 일 때 두 번째 이미지
//고양이 이미지의 배열에서 (i + 1) 번째 이미지를 선택하고 catImage에 설정 (표시)하고 숫자를 표시하는 메서드
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
·
·
·
blankImage = findViewById(R.id.blankImage);
//고양이 이미지의 리소스 배열 (10 개의 이미지 배열) 선언
typedArray = getResources().obtainTypedArray(R.array.catImages);
⑤Java의 코드 전체(*코드 수정한 것을 최하부에 추기합니다)라고 캡쳐한 동영상 앱 동작의 모습을 캡처한 동영상↓
htps : // 라고 해서 r. 이 m/i/s 타츠 s/1231957528071639040
package com.example.catswitch;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ImageView blankImage;
TextView numberTextView;
TypedArray typedArray;
Drawable drawable;
Button nextButton;
Button prevButton;
int i = 0;
//配列は[0,1,2・・・]と1番目が0になるので、i = 0の時 1番目の画像、 i = 1 の時2番目の画像
//猫画像の配列から(i + 1)番目の画像を選択してcatImageにセット(表示)し、numberを表示するメソッド
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
blankImage = findViewById(R.id.blankImage);
numberTextView = findViewById(R.id.numberTextView);
nextButton = findViewById(R.id.nextButton);
prevButton = findViewById(R.id.prevButtton);
//猫画像のリソースの配列(10個の画像の配列)
typedArray = getResources().obtainTypedArray(R.array.catImages);
//i = 0(初期値) (i + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
//nextButtonを押したときの挙動を設定 ViewクラスのOnClickListenerメソッドを上書き
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 9) {
//変数iに0を代入
i = 0;
//(0 + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
} else {
//変数iを1増加させる
i++;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
});
//prevボタンを押したときの挙動を設定
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 0) {
//変数iに9を代入
i = 9;
//(9 + 1)番目の画像を表示
catImageSelectShow();
} else {
//変数iを1減少させる
i--;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
});
}
}
activity_main.xml의 전체 코드↓
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
//Imageview blankImageを宣言(このままでは何も表示されない)
<ImageView
android:id="@+id/blankImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent" />
<TextView
android:id="@+id/numberTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="67dp"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/prevButtton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="33dp"
android:layout_marginBottom="67dp"
android:text="←"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/nextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="33dp"
android:layout_marginBottom="67dp"
android:text="→"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
(추기) 자바 코드를 조금 수정했습니다.
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 9) {
//変数iに0を代入
i = 0;
//(0 + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
} else {
//変数iを1増加させる
i++;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
나중에 이미지를 추가 할 수 있도록
i == 9 를 i == typedArray.length() - 1) 로 변경.
또한 catImageSelectShow(); 가 if 와 else 모두에 쓰여 있기 때문에
블록 밖으로 나왔습니다.
if(i == typedArray.length() - 1) {
//変数iに0を代入
i = 0;
} else {
//変数iを1増加させる
i++;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
소스 코드 전체↓
package com.catsw.catswitch;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ImageView blankImage;
TextView numberTextView;
TypedArray typedArray;
Drawable drawable;
Button nextButton;
Button prevButton;
int i = 0;
//猫画像の配列から(i + 1)番目の画像を選択してcatImageにセット(表示)し、numberを表示するメソッド
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
blankImage = findViewById(R.id.blankImage);
numberTextView = findViewById(R.id.numberTextView);
nextButton = findViewById(R.id.nextButton);
prevButton = findViewById(R.id.prevButtton);
//猫画像のリソースの配列を宣言
typedArray = getResources().obtainTypedArray(R.array.catImages);
//i = 0(初期値) (i + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
//nextButtonを押したときの挙動を設定 ViewクラスのOnClickListenerメソッドを上書き
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iが猫画像の(配列の要素数-1)に等しい時
if(i == typedArray.length() - 1) {
//変数iに0を代入
i = 0;
} else {
//変数iを1増加させる
i++;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
});
//prevボタンを押したときの挙動を設定
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(i == 0) {
//変数iに(猫画像の配列の要素数-1)を代入
i = typedArray.length() - 1;
} else {
//変数iを1減少させる
i--;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
});
}
}
Reference
이 문제에 관하여(여러 이미지를 배열로 처리(추가 있음)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KToushi/items/00dc1e5bca35cc51f804
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
htps : // 라고 해서 r. 이 m/i/s 타츠 s/1231957528071639040
package com.example.catswitch;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ImageView blankImage;
TextView numberTextView;
TypedArray typedArray;
Drawable drawable;
Button nextButton;
Button prevButton;
int i = 0;
//配列は[0,1,2・・・]と1番目が0になるので、i = 0の時 1番目の画像、 i = 1 の時2番目の画像
//猫画像の配列から(i + 1)番目の画像を選択してcatImageにセット(表示)し、numberを表示するメソッド
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
blankImage = findViewById(R.id.blankImage);
numberTextView = findViewById(R.id.numberTextView);
nextButton = findViewById(R.id.nextButton);
prevButton = findViewById(R.id.prevButtton);
//猫画像のリソースの配列(10個の画像の配列)
typedArray = getResources().obtainTypedArray(R.array.catImages);
//i = 0(初期値) (i + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
//nextButtonを押したときの挙動を設定 ViewクラスのOnClickListenerメソッドを上書き
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 9) {
//変数iに0を代入
i = 0;
//(0 + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
} else {
//変数iを1増加させる
i++;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
});
//prevボタンを押したときの挙動を設定
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 0) {
//変数iに9を代入
i = 9;
//(9 + 1)番目の画像を表示
catImageSelectShow();
} else {
//変数iを1減少させる
i--;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
});
}
}
activity_main.xml의 전체 코드↓
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
//Imageview blankImageを宣言(このままでは何も表示されない)
<ImageView
android:id="@+id/blankImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent" />
<TextView
android:id="@+id/numberTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="67dp"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/prevButtton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="33dp"
android:layout_marginBottom="67dp"
android:text="←"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/nextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="33dp"
android:layout_marginBottom="67dp"
android:text="→"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
(추기) 자바 코드를 조금 수정했습니다.
@Override
public void onClick(View v) {
//iには0~9が入る
if(i == 9) {
//変数iに0を代入
i = 0;
//(0 + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
} else {
//変数iを1増加させる
i++;
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
}
나중에 이미지를 추가 할 수 있도록
i == 9 를 i == typedArray.length() - 1) 로 변경.
또한 catImageSelectShow(); 가 if 와 else 모두에 쓰여 있기 때문에
블록 밖으로 나왔습니다.
if(i == typedArray.length() - 1) {
//変数iに0を代入
i = 0;
} else {
//変数iを1増加させる
i++;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
소스 코드 전체↓
package com.catsw.catswitch;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ImageView blankImage;
TextView numberTextView;
TypedArray typedArray;
Drawable drawable;
Button nextButton;
Button prevButton;
int i = 0;
//猫画像の配列から(i + 1)番目の画像を選択してcatImageにセット(表示)し、numberを表示するメソッド
public void catImageSelectShow() {
//配列typedArrayから画像を選択 配列の(i + 1)番目
drawable = typedArray.getDrawable(i);
//blankImage(何も表示されていない)にdrawable(画像)をセット
blankImage.setImageDrawable(drawable);
//i=0の時の画像をNo.1、i=1の時の画像をNo.2と表示するため、(i+1)を入れる
numberTextView.setText("No." + (i+1));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
blankImage = findViewById(R.id.blankImage);
numberTextView = findViewById(R.id.numberTextView);
nextButton = findViewById(R.id.nextButton);
prevButton = findViewById(R.id.prevButtton);
//猫画像のリソースの配列を宣言
typedArray = getResources().obtainTypedArray(R.array.catImages);
//i = 0(初期値) (i + 1)番目の猫画像を選択し表示 No.1と表示
catImageSelectShow();
//nextButtonを押したときの挙動を設定 ViewクラスのOnClickListenerメソッドを上書き
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//iが猫画像の(配列の要素数-1)に等しい時
if(i == typedArray.length() - 1) {
//変数iに0を代入
i = 0;
} else {
//変数iを1増加させる
i++;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
});
//prevボタンを押したときの挙動を設定
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(i == 0) {
//変数iに(猫画像の配列の要素数-1)を代入
i = typedArray.length() - 1;
} else {
//変数iを1減少させる
i--;
}
//(i + 1)番目の猫画像を選択し表示 No.(i + 1)と表示
catImageSelectShow();
}
});
}
}
Reference
이 문제에 관하여(여러 이미지를 배열로 처리(추가 있음)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KToushi/items/00dc1e5bca35cc51f804텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)