79c8847d6caa37f1108c47b991cd31fc.pngprivate PopupWindow mOptionsMenu;

@Override

public boolean onKeyDown(int keyCode, KeyEvent event)

{

if(keyCode == KeyEvent.KEYCODE_MENU)

{//点击菜单键时

if(mOptionsMenu.isShowing())

{//当mOptionsMenu显示时,就关闭它

mOptionsMenu.dismiss();

}

else

{//设置mOptionsMenu的横纵坐标,及在底部位置

mOptionsMenu.showAtLocation(findViewById(R.id.main), Gravity.BOTTOM, 0, 0);

}

return true;

}

if(keyCode == KeyEvent.KEYCODE_BACK)

{//点击返回键时

if(mOptionsMenu.isShowing())

{

mOptionsMenu.dismiss();

}

else

{//super.onBackPressed()里面有finish()的方法

super.onBackPressed();

}

return true;

}

return super.onKeyDown(keyCode, event);

}

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

LayoutInflater inflater = getLayoutInflater();

View contentView = inflater.inflate(R.layout.optionsmenu, null);

mOptionsMenu = new PopupWindow(contentView , LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

View tv5 = contentView.findViewById(R.id.textView5);

tv5.setOnClickListener(new OnClickListener()

{

//点击菜单选项也会关闭菜单

@Override

public void onClick(View v)

{

Toast.makeText(MainActivity.this, "点击", Toast.LENGTH_LONG).show();

mOptionsMenu.dismiss();

}

});

View RelativeLayout = contentView.findViewById(R.id.RelativeLayout);

RelativeLayout.setOnClickListener(new OnClickListener()

{

//点击页面其他地方,关闭菜单

@Override

public void onClick(View v)

{

mOptionsMenu.dismiss();

}

});

}

@Override

protected void onPause()

{//暂停时(点击电源键,锁屏),再次解锁时,要关闭菜单选项

super.onPause();

if(mOptionsMenu.isShowing())

{

mOptionsMenu.dismiss();

}

}

布局文件:新建xml

部分代码:

android:id="@+id/textView8"

android:background="@drawable/tv_selector"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:drawableTop="@drawable/ic_launcher"

android:text="Large Text"

android:lines="1"

android:gravity="center"

android:textAppearance="?android:attr/textAppearanceLarge" />

定制Toast:

fb2fb0d92ceb0da751c89bada7de23fa.png@Override

public void onClick(View v)

{

Toast toast = new Toast(this);

TextView tv = new TextView(this);

tv.setBackgroundColor(Color.GREEN);

tv.setText("定制Toast");

toast.setView(tv);

toast.setDuration(Toast.LENGTH_LONG);

//设置位置,页面的顶部,偏移量x,y=20

toast.setGravity(Gravity.TOP, 20, 20);

toast.show();

}

更多推荐