728x90
반응형
imageView ( 파일명에 대문자가 포함되어있으면 x , 첫글자 숫자 x )
image 넣는곳
srcCompat 으로 이미지 바꿀 수 있음
img 크기 조절
생성된 프로젝트 불러오는법
● 클릭메소드 1개로 3개의 버튼 클릭이벤트 처리하기
매개변수 View의 뜻 - 현재 Event가 발생한 View
public class MainActivity extends AppCompatActivity {
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 어플 실행시켰을때 딱 한번만 View 찾아오기
iv = findViewById(R.id.imageView);
}
//버튼 눌렀을 때 실행될 메소드 생성하기
public void btnClick1(View v){
if(v.getId() == R.id.btn_1){
//현재 이벤트가 잘생한 view의 id값이 button이라면
iv.setImageResource(R.drawable.a);
}else if(v.getId() == R.id.btn_2){
iv.setImageResource(R.drawable.a2);
}else if(v.getId() == R.id.btn_3){
iv.setImageResource(R.drawable.a3);
}
}
}
각 버튼의 id속성값을 불러와서 각각맞는 이미지 띄워주는 방식
}else if(v.getId() == R.id.btn_onoff){
cnt++;
if(cnt%2==1){
iv.setVisibility(View.INVISIBLE);
}else{
iv.setVisibility(View.VISIBLE);
}
View의 속성중 visiility - visible(보이게) , invisible(공간은 차지하며 안보이게), gone(공간도차지x 안보이게)
버튼하나 추가해서 cnt방식으로 on/off 버튼 누를때마다 보이게/안보이게 만들기
else if(v.getId() == R.id.btn_onoff){ //사라지기 버튼을 눌렀을때
//현재 이미지뷰의 visibility 상태를 가져오기
if(iv.getVisibility() == View.INVISIBLE){
iv.setVisibility(View.VISIBLE);
}else{
iv.setVisibility(View.INVISIBLE);
}
visibility상태를 가져와서 보이면 안보이게, 안보이면 보이게하는 방법
ConstraintLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
layout = findViewById(R.id.Layout);
}
public void btnc(View v){
if (v.getId()==R.id.btn_r){
layout.setBackgroundColor(Color.rgb(250,0,0));
}else if(v.getId()==R.id.btn_g){
layout.setBackgroundColor(Color.rgb(0,250,0));
}else if(v.getId()==R.id.btn_b){
layout.setBackgroundColor(Color.rgb(0,0,250));
}
}
btnc onclick으로 각 버튼 눌렀을때 배경색 바꾸기
layout . setBackgroundColor(Color.RED); 식으로도 가능함
public void btnlr(View v){
if (v.getId() == R.id.btn_pre){
cnt--;
if (cnt==2){
iv.setImageResource(R.drawable.a2);
}else if(cnt==1){
iv.setImageResource(R.drawable.a);
}else if(cnt<1){
cnt=1;
}
}
else if(v.getId()==R.id.btn_next){
cnt++;
if(cnt==2){
iv.setImageResource(R.drawable.a2);
}else if (cnt==3){
iv.setImageResource(R.drawable.a3);
}else if(cnt>3){
cnt=3;
}
}
}
◀ 버튼누르면 이전사진 ▶ 버튼누르면 다음사진으로 바꾸기
cnt를이용해 1이하면 첫번째사진에 머물게하고3이상이면 세번째사진에 머물게 한다.
◆다른방법
else if(v.getId() == R.id.btn_next){ // 다음으로 버튼 눌렀을때
//이미지들에 index 부여하기
// 순서가 없는 데이터에 순서 부여하려면 배열사용!
current++;
if(current==1){
iv.setImageResource(imgRes[1]);
}else if(current==2){
iv.setImageResource(imgRes[2]);
}
}
current와 배열index의 수가 같으니 ▼이렇게 만들 수 있음
else if(v.getId() == R.id.btn_next){ // 다음으로 버튼 눌렀을때
//이미지들에 index 부여하기
// 순서가 없는 데이터에 순서 부여하려면 배열사용!
current++;
iv.setImageResource(imgRes[current]);
}else if(v.getId() == R.id.btn_pre){
current--;
iv.setImageResource(imgRes[current]);
}
}
public void btnClick1(View v){
if(v.getId() == R.id.btn_1){
current = 0;
}else if(v.getId() == R.id.btn_2){
current = 1;
}else if(v.getId() == R.id.btn_3){
current = 2;
}else if(v.getId() == R.id.btn_onoff) { //사라지기 버튼을 눌렀을때
//현재 이미지뷰의 visibility 상태를 가져오기
if (iv.getVisibility() == View.INVISIBLE) {
iv.setVisibility(View.VISIBLE);
} else {
iv.setVisibility(View.INVISIBLE);
}
} else if(v.getId() == R.id.btn_next){ // 다음으로 버튼 눌렀을때
//이미지들에 index 부여하기
// 순서가 없는 데이터에 순서 부여하려면 배열사용!
if (current == imgRes.length-1){
Toast.makeText(MainActivity.this,"마지막사진임",Toast.LENGTH_SHORT).show();
}else{
current++;
}
}else if(v.getId() == R.id.btn_pre){
if(current==0){
Toast.makeText(MainActivity.this,"첫사진임",Toast.LENGTH_SHORT).show();
}else {
current--;
}
}
iv.setImageResource(imgRes[current]);
}
1, 2, 3 버튼과 pre , next버튼 쓰면서
if문 빠져나오면 무조건 imgRes[current]번째가 되게
반응형
'Android' 카테고리의 다른 글
Intent 사용하기 (0) | 2021.03.22 |
---|---|
Constraint Layout + 주사위게임 만들기 (0) | 2021.03.21 |
View와 xml 이란 (0) | 2021.03.21 |
Constraint Layout 예제 실습 (0) | 2021.03.19 |
에뮬레이터 설정 , 간단한onclick (0) | 2021.03.09 |