ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [5] Button Effective, Menu, AlertDialog, Dialog, Menu Dialog, Rating
    Develpment/Android Sample Source 2020. 9. 13. 21:38

    1. Button Effective


     Sample Source

    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
    <?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">
     
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/search_sellector"/>
     
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/alarm_select"/>
     
     
    </LinearLayout>
     
    cs
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?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
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?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

     

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    package 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 {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_menu);
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
     
            // Activity에 메뉴 추가하는 방법.
            getMenuInflater().inflate(R.menu.menu1, menu);
     
            return true;
        }
     
     
        // 메뉴 클릭 이벤트 감지자
        @Override
        public 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

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?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

     

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    package 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 {
     
        @Override
        protected 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;
    //    }
     
        // 누른다음 손을 땔대 동작
        @Override
        public 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() {
            @Override
            public 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

     

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    package 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;
     
        @Override
        protected 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() {
                @Override
                public 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() {
                        @Override
                        public void onClick(View view) {
                            Toast.makeText(getApplicationContext(),"menu1", Toast.LENGTH_SHORT).show();
                        }
                    });
     
                    btn2.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            // 다이얼로그 종료
                            dialog.dismiss();
                        }
                    });
     
                    //다이얼로그 타이틀 설정
                    dialog.setTitle("MyApp");
     
                    //뒤로 가기 및 주변터치로 다이얼 로그 종료되는것 막기
                    dialog.setCancelable(false);
     
                    dialog.show();
                }
            });
        }//OnCreate()
     
     
    }
     
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?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">
     
        <Button
            android:id="@+id/btn_show"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="show dialog"/>
     
    </RelativeLayout>
     
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?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">
     
        <ImageView
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@mipmap/ic_launcher"/>
     
        <Button
            android:id="@+id/btn1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="menu1"/>
     
        <Button
            android:id="@+id/btn2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="close"/>
     
    </LinearLayout>
    cs
     



    5. Menu Dialog


     Sample Source

     

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    package 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;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_menu_dialog);
     
            image = (ImageView)findViewById(R.id.image);
        }//onCreate()
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.menudialog, menu);
            return true;
        }//onCreateOptionMenu()
     
        @Override
        public 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");
            else
                btn_visible.setText("INVISIBLE");
     
     
            dialog.show();
     
            btn_visible.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(image.getVisibility() == View.INVISIBLE)
                        image.setVisibility(View.VISIBLE);
                    else
                        image.setVisibility(View.INVISIBLE);
     
                    dialog.dismiss();
                }
            });
        }//showDialog()
    }
     
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?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">
     
        <ImageView
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@mipmap/ic_launcher"/>
     
    </RelativeLayout>
     
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?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">
     
        <Button
            android:id="@+id/btn_visible"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20dp"/>
     
    </LinearLayout>
    cs

     



    6. Rating


     Sample Source

     

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    package 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;
     
        @Override
        protected 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() {
                @Override
                public 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() {
                        @Override
                        public 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() {
                        @Override
                        public 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

     

    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
    <?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">
     
        <TextView
            android: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" />
     
        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="rating"/>
     
     
    </LinearLayout>
     
    cs

     

    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
    <?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">
     
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="별점주기"
            android:textSize="20dp"/>
     
        <RatingBar
            android:id="@+id/rating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:numStars="5"/>
     
        <Button
            android: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

    댓글

Designed by Tistory.