1,在MainAcvitity里设置按键监听
由于刚接触是使用的内部类方法设置按键监听,所以怎么看实现接口的方法怎么不顺眼,不过感兴趣的可以自己去看哈
代码:
private SettingDialog settingDialog;
settingDialog = new SettingDialog(this);
ImageButton setting = findViewById(R.id.setting);
setting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogShow(settingDialog); //show就完事了
}
});
2,dialog出现方式
要求从底部往上平移的同时改变透明度。。。。
2.1res目录下新建anim目录添加window_in.xml文件
代码:
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="2000"
android:toXDelta="0"
android:toYDelta="0" />
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="800"/>
</set>
2.2 style文件里添加设置的动画
<style name="main_menu_animstyle">
<item name="android:windowEnterAnimation">@anim/windows_in</item>
<item name="android:windowExitAnimation">@anim/window_out</item>
</style>
2.3 MainActivity 里调用方法
public void dialogShow(Dialog dialog){
Window window = dialog.getWindow();
window.setWindowAnimations(R.style.main_menu_animstyle);
WindowManager.LayoutParams wl = window.getAttributes();
dialog.onWindowAttributesChanged(wl);//设置点击外围解散
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
2.4 自定义dialog
private void howToPlay(){
Button htplay = (Button) findViewById(R.id.htplay);
htplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mainActivity.soundOn) {
mainActivity.mPool.play(1, 1f, 1f, 1, 0, 0.8f);
}
Intent intent = new Intent(context,H2PActivity.class);
context.startActivity(intent);//一个界面的跳转
}
});
}
private void close(){
ImageButton ib = (ImageButton) findViewById(R.id.close);
ib.setOnClickListener(new View.OnClickListener() {//按键监听
@Override
public void onClick(View v) {
if (mainActivity.soundOn) {
mainActivity.mPool.play(1, 1f, 1f, 1, 0, 0.8f);
}
dismiss();//dialog使用该方法关闭
}
});
}