1. TextView
- layout xml파일에서 생성.
- 혹은, 자바 액티비티 java파일에서 생성 할 수 잇다
- MainActivity .java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package wakeup.textview_test_dynamic; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.RelativeLayout; import android.widget.RelativeLayout.LayoutParams; import android.widget.TextView; public class MainActivity extends Activity { RelativeLayout relativeLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //xml에 만들어진 레이아웃을 불러옴. relativeLayout = (RelativeLayout)findViewById(R.id.relativelayout); TextView textView = new TextView(getApplicationContext());//새로운 TextView를 생성. textView.setText("텍스트!");//내용 삽입. //뷰의 크기등 스타일을 지정하기 위한 코드이다. //params라는 스타일을 하나 생성후, 마진을 설정한 후에 textView에 이스타일을 넣었다. RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( (int)LayoutParams.WRAP_CONTENT , (int)LayoutParams.WRAP_CONTENT); params.setMargins(11, 120, 10, 130); textView.setLayoutParams(params); //불러온 레이아웃에 이러한 설정을 가진 textView를 넣는다. relativeLayout.addView(textView); } } |
|
- 다음 java코드는
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(...); textview.setLayoutParams(params); |
xml에서 이에 해당한다.
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"/> |
-RelativeLayout.LayoutParams 텍스트뷰의 크기나 위치는 텍스트뷰가 위치한 상위 레이아웃에서 관리한다.
텍스트뷰가 이 메소드(textView.setLayoutParams())를 통해 텍스트뷰의 크기나 위치를 가지고 있으면
바로 상위의 레이아웃은 이 정보를 토대로 텍스트뷰 크기, 위치를 나타내게 된다.
(가상메소드, 인터페이스(추상메소드), 내부클래스 기술과 관련이 있다.)(정확히는 잘 모르겟다.)
2.button
-버튼에 색이나 그림을 넣을 수 있다.
-버튼에 색 넣기.
-layout.xml
1 2 3 4 5 6 | <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_soild" android:text="Gradient변색" /> |
|
- android:background="" : 이 속성에 그림 혹은 xml id가 들어간다.
- xml형식의 그림.
-res/drawble-hdpi/button_soild.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true"> <shape> <solid android:color="#500f0f0f"/> <stroke android:color="#ffffff"/> <corners android:radius="5sp"/> </shape> </item> <item> <shape> <solid android:color="#ff5555"/> <corners android:radius="5sp"/> </shape> </item> </selector> |
|
*-xml파일에서 리소스에 있는 그림을 넣는 방법.
-res/drawble-hdpi/onepeace.xml
1 2 3 4 5 6 7 8 | <?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/onepeace_on"> </item> <item android:drawable="@drawable/onepeace"> </item> </selector> |
|
-android:drawable="" 이속성에 그림id를 넣으면 된다.
3.ToggleButton
-셀렉트 기능 역할을 부여하는 클래스는 View가 아니라 Button을 상속 받은 CompoundButton클래스 이다.
-그래서 토글 버튼의 온,오프 기능을 활용하기 위해서는 리스너 클래스에 CompoundButton를 상속 시켜야 한다.
-MainActivity .java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class MainActivity extends Activity { ToggleButton tbtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tbtn = (ToggleButton)this.findViewById(R.id.toggleButton1); //CompoundButton.OnCheckedChangeListener()를 익명클래스로 바로 호출하였다. tbtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ Toast.makeText(getApplicationContext(), "On", 0).show(); }else{ Toast.makeText(getApplicationContext(), "Off", 0).show(); } } }); } } |
|
-onCheckedChanged()는 매개변수로 boolean isChecked를 받음으로써 토글이 체크 되어있는지 아닌지를 알 수 있다.
*switch button도 온오프 기능은 같다.
-다만 스위치는 API LEVEL 14이후에 나왔다.