java - 如何在android中以编程方式隐藏音量栏?
问题描述
所以,我正在制作一个使用音量键的应用程序,按下它们后,音量条不应该出现。我试过这个,但由于某种原因,它没有用。虽然声音没有更新(因为return true
在onKeyUp()
事件中),但音量条仍然出现。我在代码的某个地方犯了错误吗?我怎样才能解决这个问题?
PS:我也添加了<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
,但是,就像我说的,它仍然不起作用
爪哇:
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.*;
public class MainActivity extends AppCompatActivity {
TextView tv;
RelativeLayout rl;
int n=1;
int nmax;
AudioManager am;
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
if(n<nmax) {
//am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_SAME, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
am.adjustVolume(AudioManager.ADJUST_SAME,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
n++;
tv.setText(""+n);
return true;
}
}else if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
if(n>1){
//am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_SAME, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
am.adjustVolume(AudioManager.ADJUST_SAME,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
n--;
tv.setText(""+n);
return true;
}
}
return super.onKeyUp(keyCode, event);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nmax = runnables.length;
am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_NORMAL);
tv = findViewById(R.id.textView);
tv.setText("1");
rl = findViewById(R.id.rl);
rl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
runnables[n-1].run();
}
});
}
Runnable[] runnables = {null,null,null,null,null};
}
XML:
<RelativeLayout 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:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#6000FFFF"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="#FF0000"
android:textSize="100sp" />
</RelativeLayout>
解决方案
推荐阅读
- node.js - Node js登录使用passport-local在邮递员中工作,但在前端Vue JS中出错
- javascript - 在 js 中的 azure blob 上设置元数据
- python - 添加到 ADDON_MANAGERS 时,插件不会出现在菜单上
- r - ggfittext 可以自动为文本选择旋转吗?
- apache-nifi - 处理来自 GetS/List SFTP 处理器的最新文件
- angular - 如何让 Angular 使用 HTTP 而不是 HTTPS?
- node.js - 没有明确指定数据库的 TypeORM 连接
- html - 如何在引导程序中将同一行中的 svg 图标和文本内容对齐到右侧(右对齐)
- python - 使用生成的数据流式传输 S3 上传
- php - 升级到新的 symfony 验证器系统:不能再登录了