Android/기본스킬 | Posted by 덩치 2014.01.27 15:28

기본적인 뷰 조작

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


Study_exam_01.zip


예제파일 import해서 실행시켜보시기 바랍니다.

해석은 주석에 다 달려 있으니, 응용하여 연습하시면 더 좋으리라 생각됩니다.




package com.example.study_exam_01;


import com.example.study_1st.R;


import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

import android.util.TypedValue;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;


public class MainActivity extends Activity implements OnClickListener {

private Button text_edit_bt;

private Button color_edit_bt;

private Button size_edit_bt;

private TextView tv1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main); //이 액티비티는 activity_main.xml 파일의 뷰를 가집니다.

tv1 = (TextView) findViewById(R.id.tv1); //xml파일에서 설정한 뷰를 소스코드에서 사용하기 위해 ID로 연결하는 과정입니다.

text_edit_bt = (Button) findViewById(R.id.text_edit_bt);

color_edit_bt = (Button) findViewById(R.id.color_edit_bt);

size_edit_bt = (Button) findViewById(R.id.size_edit_bt);

text_edit_bt.setOnClickListener(this);

color_edit_bt.setOnClickListener(this);

size_edit_bt.setOnClickListener(this);

// text_edit_bt.setOnClickListener(new View.OnClickListener() {  //이렇게 각각의 리스너를 등록해서 사용 할 수도 있습니다.

// @Override

// public void onClick(View v) {

// tv1.setText(tv1.getText() + "+");

// }

// });

}


//온클릭을 오버라이드 하기 위해서는 클래스에 OnClickListener를 implements해야합니다. 11번째줄 참조.

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.text_edit_bt :

tv1.setText(tv1.getText() + "+");  //기존 텍스트를 얻어와서(tv1.getText()) 뒤에 +를 추가합니다.

// tv1.setText("원하는 텍스트");

break;

case R.id.color_edit_bt :

tv1.setTextColor(Color.BLUE);  //Color 클래스에 들어있는 BLUE 색상으로 변환합니다.

// tv1.setTextColor(Color.parseColor("#FF0000")); //직접 색상코드를 입력하여 원하는 색으로도 설정 가능합니다.

break;

case R.id.size_edit_bt :

tv1.setTextSize(TypedValue.COMPLEX_UNIT_PX, tv1.getTextSize() + 1); //기존 텍스트사이즈를 얻어와서 + 1만큼 사이즈를 키웁니다.

// tv1.setTextSize(16); //원하는 고정수치(px)로도 텍스트 크기를 변경 가능합니다.

break;

}

}

}








<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    <Button
        android:id="@+id/text_edit_bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="글 변경" />
    
    <Button
        android:id="@+id/color_edit_bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="글씨 색 변경" />
    
    <Button
        android:id="@+id/size_edit_bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="글씨 크기 변경" />
    
</LinearLayout>