-
[3] TouchEvent, InflaterDevelpment/Android Sample Source 2020. 9. 13. 21:38
1. Touch Event
Sample Source
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374package com.ssh.user.ex_1202;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.TextView;public class TouchEventActivity extends AppCompatActivity {Button evt_btn;TextView txt_view, box;boolean isCheck; // default = false@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_touch_event);evt_btn = (Button)findViewById(R.id.evt_btn);txt_view = (TextView)findViewById(R.id.txt_view);box = (TextView)findViewById(R.id.box);evt_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(isCheck)box.setText("NO EVENT!");elsebox.setText("EVENT");isCheck = !isCheck;}});// box 텍스트 뷰에 터치 이벤트 감지자자box.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View view, MotionEvent motionEvent) {String result = "";int x = 0;int y = 0;switch(motionEvent.getAction()){case MotionEvent.ACTION_DOWN: // 터치(손가락이 닿았을때), return 값이 true, false에 상관없이 감지한다.result = "down";break;case MotionEvent.ACTION_UP: // return 값이 true일 경우에만 감지한다result = "up";break;case MotionEvent.ACTION_MOVE: // return 값이 true일 경우에만 감지한다.x = (int)motionEvent.getX();y = (int)motionEvent.getY();result = "x : " + x + ", y : " + y;break;}//switchtxt_view.setText(result);// return 값은 true일 경우에만 화면에 적용 하지만,// Action_Down은 return 값에 관계없이 적용된다.return isCheck;}});}}cs 1234567891011121314151617181920212223242526272829303132333435363738394041<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_touch_event"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"tools:context="com.ssh.user.ex_1202.TouchEventActivity"><TextViewandroid:id="@+id/txt_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30dp" /><!--버튼으로 이벤트 감지 on/off--><Buttonandroid:id="@+id/evt_btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:text="catch event"android:textSize="25dp"/><!--빨간색 뷰만 터치를 감지 하도록 만듬--><TextViewandroid:id="@+id/box"android:layout_width="250dp"android:layout_height="250dp"android:background="#f00"android:textColor="#fff"android:textSize="20dp"android:gravity="center"android:layout_centerInParent="true"/></RelativeLayout>cs 2. Inflater
Sample Source
1234567891011121314151617181920212223242526272829303132333435363738394041424344package com.ssh.user.ex_1202;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.RelativeLayout;import android.widget.Toast;public class InflaterActivity extends AppCompatActivity {LayoutInflater linf;View sub;RelativeLayout parent;Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_inflater);parent = (RelativeLayout)findViewById(R.id.activity_inflater);// LayoutInflater는 .xml을 객체화(view) 시켜주는 클래스linf = (LayoutInflater)getSystemService( LAYOUT_INFLATER_SERVICE );//sub = linf.inflate(R.layout.sub_layout, parent);sub = linf.inflate(R.layout.sub_layout, null);parent.addView(sub);btn = (Button)sub.findViewById(R.id.btn_event);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Toast.makeText(getApplicationContext(), "event!!", Toast.LENGTH_SHORT).show();}});}}cs 1234567891011121314<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_inflater"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"tools:context="com.ssh.user.ex_1202.InflaterActivity"></RelativeLayout>cs 12345678910111213141516171819202122232425262728293031323334<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal" android:layout_width="match_parent"android:layout_height="match_parent"android:padding="10dp"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/list_form_txt_s"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="txt"/><TextViewandroid:id="@+id/list_form_txt"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="7dp"android:text="line2"android:textSize="20dp"android:textStyle="bold"/></LinearLayout></LinearLayout>cs 'Develpment > Android Sample Source' 카테고리의 다른 글
[5] Button Effective, Menu, AlertDialog, Dialog, Menu Dialog, Rating (0) 2020.09.13 [4] List View, Custom Button (0) 2020.09.13 [2] Life Cycle, Event (0) 2020.09.13 [1] Button, Spinner, ListView, Weight (0) 2020.09.13 [0] Layout (Linear, Frame, Relative) (0) 2020.09.13