마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼을 누르면 다른 색깔로 바꾸기

0 추천
package com.example.music;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.media.MediaPlayer;

public class MainActivity extends Activity {
 private MediaPlayer MP1;
 private MediaPlayer MP2;
 private MediaPlayer MP3;
 private MediaPlayer MP4;
 private MediaPlayer MP5;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  MP1=MediaPlayer.create(this, R.raw.music1);
  
  final Button btn1=(Button)findViewById(R.id.btn1);
  btn1.setOnClickListener(new Button.OnClickListener() {

   public void onClick(View v) {
                if(MP1.isPlaying()){
                btn1.setText("음악1");
                MP1.pause();
                }else{
                btn1.setText("멈춤");
                MP1.start();
                MP1.setLooping(true);
                }
            }
        });  
  
  MP2=MediaPlayer.create(this, R.raw.music2);
  
  final Button btn2=(Button)findViewById(R.id.btn2);
  btn2.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                if(MP2.isPlaying()){
                btn2.setText("음악2");
                MP2.pause();
                }else{
                btn2.setText("멈춤");
                MP2.start();
                MP2.setLooping(true);
                }
            }
        });
  
  MP3=MediaPlayer.create(this, R.raw.music3);
  
  final Button btn3=(Button)findViewById(R.id.btn3);
  btn3.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
             
                if(MP3.isPlaying()){
                btn3.setText("음악3");
                MP3.pause();
                }else{
                btn3.setText("멈춤");
                MP3.start();
                MP3.setLooping(true);
                }
            }
        });
  
  MP4=MediaPlayer.create(this, R.raw.music4);
  
  final Button btn4=(Button)findViewById(R.id.btn4);
  btn4.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                if(MP4.isPlaying()){
                btn4.setText("음악4");
                MP4.pause();
                }else{
                btn4.setText("멈춤");
                MP4.start();
                MP4.setLooping(true);
                }
            }
        });

  MP5=MediaPlayer.create(this, R.raw.music5);
  
  final Button btn5=(Button)findViewById(R.id.btn5);
  btn5.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                if(MP5.isPlaying()){
                btn5.setText("음악5");
                MP5.pause();
                }else{
                btn5.setText("멈춤");
                MP5.start();
                MP5.setLooping(true);
                }
            }
        });
   }

 protected void onStop() {
  MP1.stop();
  MP2.stop();
  MP3.stop();
  MP4.stop();
  MP5.stop();
  
 }
 
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

원래는 음악1이라는 버튼을 누르면 멈춤이라는 글자가 뜨도록 만들었는데

멈춤이라는 글을 없애고 버튼 색깔만 다른 색깔로 지정해주고 싶습니다

코드를 어떻게 짜면 좋을까요?
martin_Mac (370 포인트) 님이 2013년 5월 2일 질문

3개의 답변

0 추천
버튼 5만 예를들어 보겠습니다.

MP5=MediaPlayer.create(this, R.raw.music5);

final Button btn5=(Button)findViewById(R.id.btn5);
btn5.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v)
{
if(MP5.isPlaying()){
btn5.setText("음악5");
MP5.pause();
}else{
// btn5.setText("멈춤");  글자 없앰

btn5.setTextColor(Color.RED); /// Color. 라는 값으로 여러 가지 색깔을 변경 할 수 있습니다.

                                                     // ex)Color.YELLOW, Color.GREEN

                             
MP5.start();
MP5.setLooping(true);
}
}
});
}
센스가이 (2,010 포인트) 님이 2013년 5월 2일 답변
아 감사합니다 ㅎㅎ
근데 전 텍스트 색깔을 바꿔주는게 아니고...
버튼 색깔을 바꿔주는건데.. btn5.setText 대신 버튼 색깔을 지정하면 되는건가요?
0 추천
Selector에 대해 공부해 보세요.

검색하면 많은 자료가 나올 거에요 ~
WhiteB (190 포인트) 님이 2013년 5월 2일 답변
0 추천

버튼에 터치 리스너를 등록해서 백그라운드 색을 변경해도 되고, 

젤 많이 쓰고 좋은 방법은

drawable에 XML파일 만들어주면 됩니다. 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" 
          android:drawable="@drawable/icon_option2" />
    <item android:state_focused="true" 
          android:drawable="@drawable/icon_option2" />
    <item android:drawable="@drawable/icon_option" />
</selector>

 

잇힝국대통령 (3,750 포인트) 님이 2013년 5월 2일 답변
...