wll_branch
吴丽丽 3 months ago
parent 1857dad8d5
commit ee280379e8

@ -28,6 +28,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Paint;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.Spannable;
@ -51,6 +52,11 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Button;
import android.speech.tts.TextToSpeech;
import android.speech.tts.UtteranceProgressListener;
import java.util.Locale;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
@ -72,6 +78,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class NoteEditActivity extends Activity implements OnClickListener,
NoteSettingChangedListener, OnTextViewChangeListener {
private class HeadViewHolder {
@ -148,12 +155,33 @@ public class NoteEditActivity extends Activity implements OnClickListener,
private String mUserQuery;
private Pattern mPattern;
private Button readButton;
private TextToSpeech tts;//接口
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {//tts初始化
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS) {//设置中文
int result = tts.setLanguage(Locale.CHINA);
if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE && result != TextToSpeech.LANG_AVAILABLE) {
Toast.makeText(NoteEditActivity.this, "正在跳转", Toast.LENGTH_SHORT).show();
}
tts.setSpeechRate(1.0f);//速度
tts.setPitch(1.0f);//音调
}
}
});
readButton=findViewById(R.id.readnote);//按钮
readButton.setOnClickListener(new View.OnClickListener() {//点击阅读
@Override public void onClick(View view) {
ReadNow();
}
});
if (savedInstanceState == null && !initActivityState(getIntent())) {
finish();
return;
@ -161,6 +189,36 @@ public class NoteEditActivity extends Activity implements OnClickListener,
initResources();
}
public void ReadNow(){
String noteContent = getCurrentNoteContent();
if (noteContent.isEmpty()){
MediaPlayer player=MediaPlayer.create(this,R.raw.pleaseinput);
player.start();
Toast.makeText(NoteEditActivity.this, "请输入内容", Toast.LENGTH_SHORT).show();
return;
}
Toast.makeText(NoteEditActivity.this, "开始阅读", Toast.LENGTH_SHORT).show();
// 开始朗读(使用本地语音)
tts.speak(noteContent, TextToSpeech.QUEUE_ADD, null, "test");
}
private String getCurrentNoteContent() {//获取文本
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
StringBuilder content = new StringBuilder();
for (int i = 0; i < mEditTextList.getChildCount(); i++) {
View itemView = mEditTextList.getChildAt(i);
CheckBox checkBox = itemView.findViewById(R.id.cb_edit_item);
NoteEditText editText = itemView.findViewById(R.id.et_edit_text);
String prefix = checkBox.isChecked() ? "已完成: " : "未完成: ";
content.append(prefix).append(editText.getText()).append("\n");
}
return content.toString();
} else {
return mNoteEditor.getText().toString();
}
}//
/**
* Current activity may be killed when the memory is low. Once it is killed, for another time
* user load this activity, we should restore the former state

@ -69,6 +69,17 @@
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:id="@+id/readnote"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dip"
android:layout_marginLeft="30dip"
android:layout_marginRight="30dip"
style="?android:attr/textAppearanceMedium"
android:text="阅读便签"/>
<ImageView
android:layout_width="fill_parent"
android:layout_height="7dip"
@ -83,6 +94,8 @@
android:layout_gravity="left|top"
android:fadingEdgeLength="0dip">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
@ -396,5 +409,7 @@
android:layout_marginBottom="-7dip"
android:src="@drawable/selected" />
</FrameLayout>
</LinearLayout>
</FrameLayout>

Loading…
Cancel
Save