java项目响应慢_java-项目运行缓慢

我正在开发一个对Android Studio中的吉他和弦感兴趣的应用程序.有2个微调器选择和弦,并且有一个imageview在屏幕上显示和弦图.当用户选择和弦时,其图将出现在屏幕上并播放.不幸的是,它确实运行缓慢.我怎样才能使其更快?

这是Java类

public class Chords extends ActionBarActivity implements AdapterView.OnItemSelectedListener {

String[] notes = {"A", "B", "C","C#","D", "E", "F","F#", "G"};

String[] mode = {"m", "m7", "5", " ", "7M", "dim", "aug", "sus2"};

Spinner sp;

Spinner spinner2;

TextView textView;

TextView t;

TextView t2;

MediaPlayer mySound,mySound2,mySound3,mySound4,mySound5,mySound6,mySound7;

private static ImageView imgView;

int[] images = {R.drawable.aminor,R.drawable.eminor,R.drawable.a_major,R.drawable.cmajor,R.drawable.gmajor,R.drawable.dminor,R.drawable.bminor};

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.chords_screen);

textView = (TextView) findViewById(R.id.textView);

sp = (Spinner) findViewById(R.id.spinner);

spinner2 = (Spinner) findViewById(R.id.spinner2);

t2=(TextView) findViewById(R.id.textView2);

//creating adapter

ArrayAdapter adapter_state = new ArrayAdapter(this, android.R.layout.simple_spinner_item, notes);

ArrayAdapter adapter_state2 = new ArrayAdapter(this, android.R.layout.simple_spinner_item, mode);

//setting drop down list type

adapter_state.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

adapter_state2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//setting adapter to spinner

sp.setAdapter(adapter_state);

spinner2.setAdapter(adapter_state2);

//setting listener to spinner

sp.setOnItemSelectedListener(this);

spinner2.setOnItemSelectedListener(this);

}

@Override

public void onItemSelected(AdapterView> parent, View view, int position, long id) {

imgView = (ImageView) findViewById(R.id.imageView);

mySound = MediaPlayer.create(this, R.raw.am);

mySound2 = MediaPlayer.create(this, R.raw.em);

mySound3 = MediaPlayer.create(this, R.raw.amajor);

mySound4 = MediaPlayer.create(this, R.raw.cmajor);

mySound5 = MediaPlayer.create(this, R.raw.gmajor);

mySound6 = MediaPlayer.create(this, R.raw.dminor);

mySound7 = MediaPlayer.create(this, R.raw.bm);

if (sp.getSelectedItemPosition() == 0 && spinner2.getSelectedItemPosition() == 0) {

mySound.start();

imgView.setImageResource(images[0]);

}

if (sp.getSelectedItemPosition() == 0 && spinner2.getSelectedItemPosition() == 3) {

mySound3.start();

imgView.setImageResource(images[2]);

}

if (sp.getSelectedItemPosition() == 1 && spinner2.getSelectedItemPosition() == 0) {

mySound7.start();

imgView.setImageResource(images[6]);

}

if (sp.getSelectedItemPosition() == 2 && spinner2.getSelectedItemPosition() == 3) {

mySound4.start();

imgView.setImageResource(images[3]);

}

if (sp.getSelectedItemPosition() == 4 && spinner2.getSelectedItemPosition() == 0) {

mySound6.start();

imgView.setImageResource(images[5]);

}

if (sp.getSelectedItemPosition() == 5 && spinner2.getSelectedItemPosition() == 0) {

mySound2.start();

imgView.setImageResource(images[1]);

}

if (sp.getSelectedItemPosition() == 8 && spinner2.getSelectedItemPosition() == 3) {

mySound5.start();

imgView.setImageResource(images[4]);

}

}

public void onNothingSelected(AdapterView> parent) {

// TODO Auto-generated method stub

}

}

解决方法:

mySound = MediaPlayer.create(this, R.raw.am);

mySound2 = MediaPlayer.create(this, R.raw.em);

mySound3 = MediaPlayer.create(this, R.raw.amajor);

mySound4 = MediaPlayer.create(this, R.raw.cmajor);

mySound5 = MediaPlayer.create(this, R.raw.gmajor);

mySound6 = MediaPlayer.create(this, R.raw.dminor);

mySound7 = MediaPlayer.create(this, R.raw.bm);

不要这样创建1个MediaPlayer. MediaPlayer是一个庞大的对象,创建其中的7个非常痛苦且缓慢.您甚至不应该在每次单击时都创建一个新的对象,而应该在oncreate中创建它,而应该在新的数据源集中创建它.

标签:android-studio,java,android

来源: https://codeday.me/bug/20191026/1938679.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值