如何创建android服务(均衡器)来寻找我拥有的条形码?
我需要转换下面的代码,这是一个均衡器,一个android服务,当我关闭它时,它的效果仍然存在,是如何做到这一点 这样做的原因是,当我回到均衡器和执行屏幕时,他没有错过我设置的ifeitos 我需要一些关于如何执行此操作的提示,我甚至无法在服务中按id声明findview:/ 多谢各位 公共类活动{如何创建android服务(均衡器)来寻找我拥有的条形码?,android,service,android-seekbar,Android,Service,Android Seekbar,我需要转换下面的代码,这是一个均衡器,一个android服务,当我关闭它时,它的效果仍然存在,是如何做到这一点 这样做的原因是,当我回到均衡器和执行屏幕时,他没有错过我设置的ifeitos 我需要一些关于如何执行此操作的提示,我甚至无法在服务中按id声明findview:/ 多谢各位 公共类活动{ private ArrayList<SeekBar> eqSbs; private Spinner eqPresetSpn; private Spinner prSpn; private
private ArrayList<SeekBar> eqSbs;
private Spinner eqPresetSpn;
private Spinner prSpn;
private Equalizer eq;
private PresetReverb pr;
private Visualizer vs;
private SharedPreferences pref;
public AndroidBuildingMusicPlayerActivity mp3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.equalizer2);
eqSbs = new ArrayList<SeekBar>();
eqPresetSpn = (Spinner)findViewById(R.id.eqPresetSpn2);
prSpn = (Spinner)findViewById(R.id.reverbSpn2);
setEqualizer();
setReverb();
// setVisualizer();
pref = PreferenceManager.getDefaultSharedPreferences(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_save1 :
return save(1);
case R.id.menu_save2 :
return save(2);
case R.id.menu_save3 :
return save(3);
case R.id.menu_load1 :
return load(1);
case R.id.menu_load2 :
return load(2);
case R.id.menu_load3 :
return load(3);
}
return false;
}
private void setEqualizer() {
eq = new Equalizer(0, mp3.mp2.getAudioSessionId());
eq.setEnabled(true);
final short minEQLevel = eq.getBandLevelRange()[0];
final short maxEQLevel = eq.getBandLevelRange()[1];
TableLayout eqLayout = (TableLayout)findViewById(R.id.eq2);
short bands = eq.getNumberOfBands();
for (short i = 0; i < bands; i++) {
final short band = i;
TableRow row = new TableRow(this);
TextView freq = new TextView(this);
freq.setGravity(Gravity.CENTER);
freq.setText((eq.getCenterFreq(band) / 1000) + "Hz");
row.addView(freq);
eqSbs.add(new SeekBar(this));
eqSbs.get(i).setMax(maxEQLevel - minEQLevel);
eqSbs.get(i).setProgress(eq.getBandLevel(band) - minEQLevel);
eqSbs.get(i).setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
eq.setBandLevel(band, (short) (progress + minEQLevel));
}
public void onStartTrackingTouch(SeekBar seekBar) { }
public void onStopTrackingTouch(SeekBar seekBar) { }
});
row.addView(eqSbs.get(i));
eqLayout.addView(row);
}
ArrayList<String> presetList = new ArrayList<String>();
for (short i = 0; i < eq.getNumberOfPresets(); i++) {
presetList.add(eq.getPresetName(i));
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, presetList);
eqPresetSpn.setAdapter(adapter);
eqPresetSpn.setOnItemSelectedListener(new OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
eq.usePreset((short)position);
for (int i = 0; i < eq.getNumberOfBands(); i++) {
eqSbs.get(i).setProgress(eq.getBandLevel((short)i) - minEQLevel);
}
Log.d("EQ", eq.getProperties().toString());
}
public void onNothingSelected(AdapterView<?> parent) { }
});
}
private void setReverb() {
pr = new PresetReverb(0, mp3.mp2.getAudioSessionId());
pr.setEnabled(true);
prSpn.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
pr.setPreset(PresetReverb.PRESET_NONE);
break;
case 1:
pr.setPreset(PresetReverb.PRESET_SMALLROOM);
break;
case 2:
pr.setPreset(PresetReverb.PRESET_MEDIUMROOM);
break;
case 3:
pr.setPreset(PresetReverb.PRESET_LARGEROOM);
break;
case 4:
pr.setPreset(PresetReverb.PRESET_MEDIUMHALL);
break;
case 5:
pr.setPreset(PresetReverb.PRESET_LARGEHALL);
break;
case 6:
pr.setPreset(PresetReverb.PRESET_PLATE);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) { }
});
}
private boolean save(int i) {
SharedPreferences.Editor editor = pref.edit();
editor.putString("eq" + i, eq.getProperties().toString());
editor.putString("pr" + i, pr.getProperties().toString());
return editor.commit();
}
private boolean load(int i) {
eq.setProperties(new Equalizer.Settings(pref.getString("eq" + i, "Equalizer;curPreset=0;numBands=5;band1Level=300;band2Level=0;band3Level=0;band4Level=0;band5Level=300")));
short bands = eq.getNumberOfBands();
short minEQLevel = eq.getBandLevelRange()[0];
// eqPresetSpn.setSelection(eq.getCurrentPreset());
for (int j = 0; j < bands; j++) {
eqSbs.get(j).setProgress(eq.getBandLevel((short)j) - minEQLevel);
}
pr.setProperties(new PresetReverb.Settings(pref.getString("pr" + i, "PresetReverb;preset=0")));
switch (pr.getPreset()) {
case PresetReverb.PRESET_NONE :
prSpn.setSelection(0);
break;
case PresetReverb.PRESET_SMALLROOM :
prSpn.setSelection(1);
break;
case PresetReverb.PRESET_MEDIUMROOM :
prSpn.setSelection(2);
break;
case PresetReverb.PRESET_LARGEROOM :
prSpn.setSelection(3);
break;
case PresetReverb.PRESET_MEDIUMHALL :
prSpn.setSelection(4);
break;
case PresetReverb.PRESET_LARGEHALL :
prSpn.setSelection(5);
break;
case PresetReverb.PRESET_PLATE :
prSpn.setSelection(6);
break;
}
return true;
}
private ArrayList eqSbs;
专用微调器设备;
私人纺纱机;
专用均衡器;
私人混响公关;
私有可视化工具vs;
私人共享参考优先;
公共建筑音乐播放器mp3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.r2);
eqSbs=新的ArrayList();
eqPresetSpn=(微调器)findViewById(R.id.eqPresetSpn2);
prSpn=(微调器)findViewById(R.id.reversbspn2);
设置均衡器();
设置混响();
//setVisualizer();
pref=PreferenceManager.getDefaultSharedReferences(此);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.menu_save1:
返回保存(1);
案例R.id.menu_save2:
返回保存(2);
案例R.id.menu_save3:
返回保存(3);
案例R.id.menu\U load1:
返回载荷(1);
案例R.id.menu\U load2:
返回载荷(2);
案例R.id.menu\U load3:
返回载荷(3);
}
返回false;
}
私有无效设置均衡器(){
eq=新均衡器(0,mp3.mp2.getAudioSessionId());
eq.setEnabled(真);
最终短矿井水位=等式getBandLevelRange()[0];
最终短maxEQLevel=等式getBandLevelRange()[1];
TableLayout eqLayout=(TableLayout)findviewbyd(R.id.eq2);
短波段=等式getNumberOfBands();
用于(短i=0;i