-
[5] Button Effective, Menu, AlertDialog, Dialog, Menu Dialog, RatingDevelpment/Android Sample Source 2020. 9. 13. 21:38
1. Button Effective
Sample Source
1234567891011121314151617181920212223242526<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_button_effective"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_1205.ButtonEffectiveActivity"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/search_sellector"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/alarm_select"/></LinearLayout>cs 12345678910<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"android:drawable="@mipmap/a_alarm" /><item android:state_pressed="false"android:drawable="@mipmap/b_alarm" /></selector>cs 123456789101112<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><!--버튼 클릭 후--><item android:state_pressed="true"android:drawable="@mipmap/a_search"/><!--버튼 클릭 전--><item android:state_pressed="false"android:drawable="@mipmap/b_search"/></selector>cs 2. Menu
Sample Source
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849package com.ssh.user.ex_1205;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast;public class MenuActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_menu);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Activity에 메뉴 추가하는 방법.getMenuInflater().inflate(R.menu.menu1, menu);return true;}// 메뉴 클릭 이벤트 감지자@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch(item.getItemId()){case R.id.menu1:Toast.makeText(getApplicationContext(), "menu1", Toast.LENGTH_SHORT).show();break;case R.id.menu2:Toast.makeText(getApplicationContext(), "menu2", Toast.LENGTH_SHORT).show();break;case R.id.menu3:finish();break;default:break;}return super.onOptionsItemSelected(item);}}cs 12345678910111213<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/menu1"android:title="ADD" /><item android:id="@+id/menu2"android:title="EDIT" /><item android:id="@+id/menu3"android:title="EXIT" /></menu>cs 3. Alert Dialog
Sample Source
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package com.ssh.user.ex_1205;import android.content.DialogInterface;import android.os.Bundle;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.widget.Toast;public class AlertActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_alert);}//OnCreate()// @Override// public boolean onKeyDown(int keyCode, KeyEvent event) {//// if(event.getAction() == KeyEvent.ACTION_DOWN)// {// if(keyCode == KeyEvent.KEYCODE_BACK)// {// // 뒤로가기 눌리는 순간 감지, 최근 잘 쓰지 않는 추세// }// }//// return false;// }// 누른다음 손을 땔대 동작@Overridepublic void onBackPressed() {//super.onBackPressed();// 뒤로 가기 버튼을 클릭 했다면 AlertDialog를 생성AlertDialog.Builder dialog = new AlertDialog.Builder(AlertActivity.this);// AlertDialog는 총 3개 까지의 버튼을 추가할 수 있다.dialog.setPositiveButton("Ok", click);dialog.setNeutralButton("maby", click);dialog.setNegativeButton("cancel", null);dialog.setTitle("app name");dialog.setMessage("EXIT ?");dialog.show();}DialogInterface.OnClickListener click = new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {switch(i){case DialogInterface.BUTTON_POSITIVE:finish();break;case DialogInterface.BUTTON_NEUTRAL:Toast.makeText(getApplicationContext(), "maybe..", Toast.LENGTH_SHORT).show();break;case DialogInterface.BUTTON_NEGATIVE:break;default:break;}}};}cs 4. Dialog
Sample Source
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273package com.ssh.user.ex_1205;import android.app.Dialog;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.Button;import android.widget.Toast;public class DialogActivity extends AppCompatActivity {Button btn_show, btn1, btn2;Dialog dialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_dialog);btn_show = (Button)findViewById(R.id.btn_show);btn_show.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//다이얼로그 생성dialog = new Dialog(DialogActivity.this);// Option//다이얼로그의 타이틀바 제거, SetContentView() 보다 위에서 해야한다.dialog.requestWindowFeature( Window.FEATURE_NO_TITLE );//다이얼로그 반투명 효과 제거, SetContentView() 보다 위에서 해야한다.dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//다이얼로그 배경 제거dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//다이얼로그 화면 구성dialog.setContentView(R.layout.dialog_layout);btn1 = (Button)dialog.findViewById(R.id.btn1);btn2 = (Button)dialog.findViewById(R.id.btn2);btn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Toast.makeText(getApplicationContext(),"menu1", Toast.LENGTH_SHORT).show();}});btn2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 다이얼로그 종료dialog.dismiss();}});//다이얼로그 타이틀 설정dialog.setTitle("MyApp");//뒤로 가기 및 주변터치로 다이얼 로그 종료되는것 막기dialog.setCancelable(false);dialog.show();}});}//OnCreate()}cs 1234567891011121314151617181920<?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_dialog"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_1205.DialogActivity"><Buttonandroid:id="@+id/btn_show"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="show dialog"/></RelativeLayout>cs 123456789101112131415161718192021222324<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"><ImageViewandroid:layout_width="200dp"android:layout_height="200dp"android:src="@mipmap/ic_launcher"/><Buttonandroid:id="@+id/btn1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="menu1"/><Buttonandroid:id="@+id/btn2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="close"/></LinearLayout>cs 5. Menu Dialog
Sample Source
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980package com.ssh.user.ex_1205;import android.app.Dialog;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.WindowManager;import android.widget.Button;import android.widget.ImageView;public class MenuDialogActivity extends AppCompatActivity {Dialog dialog;ImageView image;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_menu_dialog);image = (ImageView)findViewById(R.id.image);}//onCreate()@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menudialog, menu);return true;}//onCreateOptionMenu()@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch(item.getItemId()){case R.id.menu_dialog:showDialog();break;default:break;}return super.onOptionsItemSelected(item);}//onOptionItemSelected()private void showDialog(){dialog = new Dialog(MenuDialogActivity.this);dialog.setCancelable(false);dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);dialog.setContentView(R.layout.dialog_menu_layout);Button btn_visible = (Button)dialog.findViewById(R.id.btn_visible);if(image.getVisibility() == View.INVISIBLE)btn_visible.setText("VISIBLE");elsebtn_visible.setText("INVISIBLE");dialog.show();btn_visible.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(image.getVisibility() == View.INVISIBLE)image.setVisibility(View.VISIBLE);elseimage.setVisibility(View.INVISIBLE);dialog.dismiss();}});}//showDialog()}cs 1234567891011121314151617181920<?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_menu_dialog"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_1205.MenuDialogActivity"><ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="match_parent"android:src="@mipmap/ic_launcher"/></RelativeLayout>cs 123456789101112<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/btn_visible"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20dp"/></LinearLayout>cs 6. Rating
Sample Source
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071package com.ssh.user.ex_1205;import android.app.Dialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.Window;import android.widget.Button;import android.widget.RatingBar;import android.widget.TextView;public class RatingActivity extends AppCompatActivity {TextView result_txt;Button btn, btn_ok;Dialog dialog;RatingBar ratingbar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_rating);result_txt = (TextView)findViewById(R.id.result_txt);btn = (Button)findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dialog = new Dialog(RatingActivity.this);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);dialog.setContentView(R.layout.dialog_rating);btn_ok = (Button)dialog.findViewById(R.id.btn_ok);btn_ok.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dialog.dismiss();}});ratingbar = (RatingBar)dialog.findViewById(R.id.rating);ratingbar.setIsIndicator(false); // 수정 가능(false), 불가능(true) 여부ratingbar.setStepSize(0.5f); // 별 반개당 점수 세팅//Ratingbar의 변경 사항을 감지하는 감지자ratingbar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {@Overridepublic void onRatingChanged(RatingBar ratingBar, float v, boolean b) {//파라미터 값인 v는 반칸당 0.5점씩 증가되는 형태. ( setStepSize()에서 설정해준 값 )float star = 10.0f / ratingBar.getNumStars();String str = String.format("%.1f/10.0", star*v);result_txt.setText( str );}});dialog.show();}});}}cs 12345678910111213141516171819202122232425262728293031<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_rating"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_1205.RatingActivity"android:orientation="vertical"><TextViewandroid:id="@+id/result_txt"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:text="/10.0"android:textSize="30dp"android:gravity="center" /><Buttonandroid:id="@+id/btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="rating"/></LinearLayout>cs 1234567891011121314151617181920212223242526<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="별점주기"android:textSize="20dp"/><RatingBarandroid:id="@+id/rating"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:numStars="5"/><Buttonandroid:id="@+id/btn_ok"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="ok"/></LinearLayout>cs 'Develpment > Android Sample Source' 카테고리의 다른 글
[7] SharedPreferences, Tutorial, Canvas 1,2 (0) 2020.09.13 [6] Intent, Handler, Exit (0) 2020.09.13 [4] List View, Custom Button (0) 2020.09.13 [3] TouchEvent, Inflater (0) 2020.09.13 [2] Life Cycle, Event (0) 2020.09.13