클릭을 길게하여 나타나는 메뉴를 보인다.  컴퓨터의 우클릭과 비슷한 기능을 한다.

@drawable에 삽입하는 그림의 해상도가 지나치게 클 경우 프로그램이 죽는 현상이 발생한다.

 

 

------------------ xml파일 내용 ----------------------------

<?xml version="1.0" encoding="utf-8"?>
  <androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context=".MainActivity">

    <Button
      android:id="@+id/button1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Button1"
    />
    <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editext"
      android:text="EditText"
     />
    <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/Image1"
      android:src="@drawable/woman3"
    />
 </androidx.appcompat.widget.LinearLayoutCompat>

 

---------------------------- mainActivity.java-----------------------------------

public class MainActivity extends AppCompatActivity {
  Button mBtn;
  EditText mEdit;
  ImageView mImage;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mBtn = (Button)findViewById(R.id.button1);
    registerForContextMenu(mBtn);

    mEdit = (EditText)findViewById(R.id.editext);
    registerForContextMenu(mEdit);

    mImage = (ImageView) findViewById(R.id.Image1);
    registerForContextMenu(mImage);
  }

  @Override
  public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    if (v == mBtn) {
      menu.setHeaderTitle("Button Menu");
      menu.add(0,1,0,"red");
      menu.add(0,2,0,"green");
      menu.add(0,3,0,"blue");
    }

    if (v==mEdit){
      menu.add(0,4,0,"번역");
      menu.add(0,5,0,"작곡");
    }
    if (v==mImage){
      menu.setHeaderTitle("Image Menu");
      menu.add(0,100,0,"회전");
      menu.add(0,200,0,"이동");
    }
  }

  @Override
  public boolean onContextItemSelected(MenuItem item) {
    super.onContextItemSelected(item);
    switch (item.getItemId())
    {
      case 1:
        mBtn.setTextColor(Color.RED);
        return true;
      case 2:
        mBtn.setTextColor(Color.GREEN);
        return true;
      case 3:
        mBtn.setTextColor(Color.BLUE);
        return true;
      case 4:
        Toast.makeText(this,"번역",Toast.LENGTH_SHORT).show();
        return true;
      case 5:
        Toast.makeText(this,"작곡",Toast.LENGTH_SHORT).show();
        return true;
      case 100:
        Toast.makeText(this,"회전",Toast.LENGTH_SHORT).show();
        return true;
      case 200:
        Toast.makeText(this,"이동",Toast.LENGTH_SHORT).show();
        return true;
    }
    return true;
  }
}

 

 

'IT 통신 수학 과학 > 자바 안드로이드' 카테고리의 다른 글

AdapterView 다중선택  (0) 2020.11.02
AdapterView2  (0) 2020.11.01
ArrayAdapter  (0) 2020.10.28
Android popmenu  (0) 2020.09.08
menu기능//item.setIcon(R.drawable.ic_launcher)오류  (0) 2020.09.02
타이머 메시지 핸들러  (0) 2020.08.29
버튼 리스너 구현  (0) 2020.08.23
터치 입력시험  (0) 2020.08.19

+ Recent posts