前言
- 博主刚学习这个的时候,刚巧那段时间流行青你2的reader,当时还没有开始写CSDN博客
- 淡黄的长裙,蓬松的头发 余音绕梁且三日未散去,怎么感觉有声音了。。。
- 突发奇想,闲来无事,脑子一抽就做了这个幼稚APP
xml布局构思
- 总体是一个垂直的线性布局,老设计套路了
- 往里面是3个水平(横向)线性布局
- 第一个水平(横向)线性布局内放一个textview文本和editview输入框,且输入框有相应提示
- 第二第三个水平(横向)线性布局分别放2个按钮,做工粗糙
设计效果图

Mainactivity.java
- 博主这边用的是荣耀10真机运行,手机内自带科大讯飞语音库所以可以读中文,而使用安卓AVD(Android virtual devices)的话默认只能读英语,必须setLanguage(Locale.US),比较闲的童鞋可以去往AVD内装科大讯飞语音库,步骤比较多,博主放弃了哈哈
- 另外我这边的按钮定义顺序没改,有点奇怪,但是功能是对应齐全的,而且代码基本上没什么大错
public class MainActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private EditText edit1;
private Button btn;
private Button btn2;
private Button btn3;
private Button btn4;
private Button btn5;
private TextToSpeech textToSpeech;
private LinearLayout left;
String s= "就当是一场梦,醒了很久还是很感动,还是很想被你,保护我心里的惨痛,喜欢我,很辛苦,其实我都清楚,放心,这世界很大,但我记得你的叮嘱!淡黄的长裙,蓬松的头发,牵着我的手看最新展出的油画,无人的街道,在空荡的家里,就只剩我一个人,开狂欢的party";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = (EditText) findViewById(R.id.edit);
btn = (Button) findViewById(R.id.btn);
btn2 = (Button) findViewById(R.id.btn2);
textToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
textToSpeech.setLanguage(Locale.CHINESE);
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textToSpeech.speak(edit1.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.melody);
mediaPlayer.start();
textToSpeech.speak(s,TextToSpeech.QUEUE_FLUSH,null);
}
});
btn3 = (Button) findViewById(R.id.btn3);
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textToSpeech.stop();
try {
if (mediaPlayer.isPlaying()){
mediaPlayer.stop();
}
}catch (Exception ignore){
}
}
});
btn4 = (Button) findViewById(R.id.btn4);
left = (LinearLayout) findViewById(R.id.left);
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
left.setLayoutParams(new LinearLayout.LayoutParams(getWindowManager().getDefaultDisplay().getWidth()/3,getWindowManager().getDefaultDisplay().getHeight()));
}
});
btn5 = (Button) findViewById(R.id.btn5);
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit1.setText("");
}
});
}
}
实现效果图
