-
[7] SharedPreferences, Tutorial, Canvas 1,2Develpment/Android Sample Source 2020. 9. 13. 21:39
1. SharedPreferences
Sample Source
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677package com.ssh.user.ex_1207;import android.content.SharedPreferences;import android.os.Bundle;import android.preference.PreferenceManager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;public class PrefereActivity extends AppCompatActivity {Button btn_up, btn_down, btn_reset;TextView value;int num = 0;//값을 저장하기 위한 클래스SharedPreferences pref;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_prefere);pref = PreferenceManager.getDefaultSharedPreferences( PrefereActivity.this );// 저장되어 있는 값을 Loadnum = pref.getInt("save", 0);value = (TextView)findViewById(R.id.value);value.setText(String.valueOf(num));btn_up = (Button)findViewById(R.id.btn_up);btn_down = (Button)findViewById(R.id.btn_down);btn_reset = (Button)findViewById(R.id.btn_reset);btn_up.setOnClickListener(click);btn_down.setOnClickListener(click);btn_reset.setOnClickListener(click);}//onCreate()View.OnClickListener click = new View.OnClickListener() {@Overridepublic void onClick(View view) {switch(view.getId()){case R.id.btn_up:num++;break;case R.id.btn_down:num--;break;case R.id.btn_reset:num = 0;break;}value.setText( String.valueOf(num) );}};@Overrideprotected void onDestroy() {super.onDestroy();//app이 완전히 종료될 때 num 값을 저장.SharedPreferences.Editor edit = pref.edit();edit.putInt("save", num );edit.commit();}}cs 123456789101112131415161718192021222324252627282930313233343536373839404142434445<?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_prefere"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_1207.PrefereActivity"android:gravity="center"android:orientation="vertical"><TextViewandroid:id="@+id/value"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:textSize="40dp"android:text="0"/><Buttonandroid:id="@+id/btn_up"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="value++"/><Buttonandroid:id="@+id/btn_down"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="value--"/><Buttonandroid:id="@+id/btn_reset"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="reset"/></LinearLayout>cs 2. Tutorial
Sample Sourece
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859package com.ssh.user.ex_1208;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.preference.PreferenceManager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.CheckBox;public class TutorialActivity extends AppCompatActivity {CheckBox check;Button start;SharedPreferences pref;boolean b;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_tutorial);pref = PreferenceManager.getDefaultSharedPreferences(TutorialActivity.this);b = pref.getBoolean("myTutorial", false);if(b == true)startActivityTutorial();check = (CheckBox) findViewById(R.id.check);start = (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//체크박스의 현재 상태를 저장SharedPreferences.Editor edit = pref.edit();edit.putBoolean("myTutorial", check.isChecked());edit.commit();startActivityTutorial();}});}//onCreate()//화면전환 메서드private void startActivityTutorial(){Intent i = new Intent(TutorialActivity.this, MainActivity.class);i.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);startActivity(i);finish();}}cs 1234567891011121314151617181920212223242526272829303132333435363738<?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_tutorial"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:background="#aaf"tools:context="com.ssh.user.ex_1208.TutorialActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:textColor="#000"android:textSize="30dp"android:textStyle="italic"android:text="tutorlal" /><CheckBoxandroid:id="@+id/check"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Totorial 다시 보지 않기"android:layout_alignParentBottom="true"android:layout_alignParentRight="true"/><Buttonandroid:id="@+id/start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="start"android:layout_alignParentBottom="true"/></RelativeLayout>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_main"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_1208.MainActivity"><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="tutorial"/></RelativeLayout>cs 3. Canvas 1
Sample Source
1234567891011121314package com.ssh.user.ex_1208;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class Canvas01Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView( new MyView(Canvas01Activity.this) );}}cs 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849package com.ssh.user.ex_1208;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.view.View;/*** Created by USER on 2016-12-08.*/public class MyView extends View{public MyView(Context context) {super(context);}// View에서는 onDraw에서 작업한내용만 적용// 화면에 그림을 갱신하는 메서드@Overrideprotected void onDraw(Canvas canvas) {// 그림을 그리기 위한 붓과 같은 객체Paint paint = new Paint();paint.setColor(Color.BLUE);//캔버스에 사각형 그리기.Rect rt = new Rect();// top right// ______// ㅣ____ㅣ// left bottomrt.set(100, 200, 300, 400);canvas.drawRect(rt, paint);//캔버스에 원 그리기.paint.setColor(Color.RED);canvas.drawCircle(200, 600, 100, paint);//테두리만 있는 색상의 원paint.setStyle(Paint.Style.STROKE);canvas.drawCircle(400, 600, 100, paint);}}cs 4. Canvas 2
Sample Source
1234567891011121314package com.ssh.user.ex_1208;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class Canvas02Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new MyView2(Canvas02Activity.this));}}cs 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465package com.ssh.user.ex_1208;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.view.MotionEvent;import android.view.View;/*** Created by USER on 2016-12-08.*/public class MyView2 extends View {public MyView2(Context context) {super(context);}Paint paint = new Paint();// Path : 화면에 그리기 위한 정보를 모아서 한번에 출력해 주는 클래스Path path = new Path();int x, y;@Overrideprotected void onDraw(Canvas canvas) {paint.setColor(Color.GREEN);paint.setStrokeWidth( 3 );paint.setStyle(Paint.Style.STROKE);//path가 기억하는 좌표를 화면에 갱신canvas.drawPath(path, paint);}//onDraw()// 터치 감지@Overridepublic boolean onTouchEvent(MotionEvent event) {x = (int)event.getX();y = (int)event.getY();switch(event.getAction()){case MotionEvent.ACTION_DOWN://터치된 x,y 좌표를 기억.path.moveTo(x,y);break;case MotionEvent.ACTION_MOVE:x = (int)event.getX();y = (int)event.getY();path.lineTo(x,y);break;}//onDraw() (화면갱신) 호출invalidate();return true;}}cs 'Develpment > Android Sample Source' 카테고리의 다른 글
[6] Intent, Handler, Exit (0) 2020.09.13 [5] Button Effective, Menu, AlertDialog, Dialog, Menu Dialog, Rating (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