From 3139f41b3a5d6492220c87c4859b17858943004c Mon Sep 17 00:00:00 2001 From: zcx <1078327420@qq.com> Date: Mon, 15 Jan 2024 19:25:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/micode/notes/ui/NoteEditActivity.java | 45 ++++++++++++++++-- .../micode/notes/ui/NotesListActivity.java | 46 +++++++++++++++++-- 2 files changed, 81 insertions(+), 10 deletions(-) diff --git a/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java index 7a6182d..7fb91be 100644 --- a/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ b/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -53,6 +53,7 @@ import android.widget.TextView; import android.widget.Toast; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; +import android.graphics.Typeface; import net.micode.notes.R; import net.micode.notes.data.Notes; @@ -75,6 +76,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; + public class NoteEditActivity extends Activity implements OnClickListener, NoteSettingChangedListener, OnTextViewChangeListener { private class HeadViewHolder { @@ -87,6 +89,32 @@ public class NoteEditActivity extends Activity implements OnClickListener, public ImageView ibSetBgColor; } + //显示选择列表 + public void showSingleAlterDiglog(){ + final String[] items ={"默认—普通","非衬线","衬线","宽体"}; + AlertDialog.Builder alterBuilder = new AlertDialog.Builder(this); + alterBuilder.setTitle("选择字体"); + alterBuilder.setSingleChoiceItems(items,0,new DialogInterface.OnClickListener(){ + //选择字体 + @Override + public void onClick(DialogInterface dialogInterface,int i){ + if(i == 0){ + mNoteEditor.setTypeface(Typeface.DEFAULT); + }else if(i == 1){ + mNoteEditor.setTypeface(Typeface.SANS_SERIF); + }else if(i == 2){ + mNoteEditor.setTypeface(Typeface.SERIF); + }else if(i == 3){ + mNoteEditor.setTypeface(Typeface.MONOSPACE); + }/**else if(i == 4){ + Typeface typeface0 = Typeface.createFromAsset(getAssets(),"front/impact.ttf"); + mNoteEditor.setTypeface(typeface0); + }**/ + } + }); + alterBuilder.show(); + } + private static final Map sBgSelectorBtnsMap = new HashMap(); static { sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); @@ -367,12 +395,13 @@ public class NoteEditActivity extends Activity implements OnClickListener, private TextToSpeech mTTS; private void initResources() { mTTS = new TextToSpeech(this, new OnInitListener() { + //朗读设置配置,可以修改 @Override public void onInit(int status) { if(status==TextToSpeech.SUCCESS){ - mTTS.setLanguage(Locale.US); + mTTS.setLanguage(Locale.US);//设置朗读语言 mTTS.setPitch(1.5f); - mTTS.setSpeechRate(0.5f); + mTTS.setSpeechRate(0.5f);//设置朗读速度 } } }); @@ -552,10 +581,13 @@ public class NoteEditActivity extends Activity implements OnClickListener, setReminder(); } else if (itemId == R.id.menu_delete_remind) { mWorkingNote.setAlertDate(0, false); - }else if(itemId==R.id.menu_voice_read){ - Log.d("voice mix","in"); - texttoSpeech(); + }else if(itemId==R.id.menu_voice_read){//当点击voice read按钮时,触发朗读功能 + Log.d("voice read","in"); + texttoSpeech();//朗读实现的方法 + }else if(itemId==R.id.menu_font_select){ + showSingleAlterDiglog(); } + return true; } @@ -568,6 +600,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, }); d.show(); } + + //功能:朗读文本 + //实现:使用使用TextToSpeech(TTS)引擎进行文本转语音的操作 private void texttoSpeech(){ mTTS.speak(mNoteEditor.getText().toString(),TextToSpeech.QUEUE_FLUSH,null,null); } diff --git a/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java index ab814a0..fe267a3 100644 --- a/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/master/Notes-master1/app/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -79,6 +79,9 @@ import java.io.InputStreamReader; import java.util.HashSet; public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { + /*用于切换背景图片*/ + private int mode = -1; + private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; private static final int FOLDER_LIST_QUERY_TOKEN = 1; @@ -141,6 +144,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.note_list); + /*设置初始页面*/ + getWindow().setBackgroundDrawableResource(R.drawable.hmbb); initResources(); /** @@ -407,11 +412,17 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } }; - + + /* + * 开始异步查询,根据当前文件夹获取笔记列表。 + */ private void startAsyncNotesListQuery() { + // 根据当前文件夹确定选择条件 String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION : NORMAL_SELECTION; + // 检查是否启用了秘密模式 if(secret_mode == 0) { + // 使用默认的PROJECTION开始查询 mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[]{ String.valueOf(mCurrentFolderId) @@ -419,6 +430,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } else{ String str1 = "404"; + // 定义一个新的PROJECTION数组,将SNIPPET替换为自定义值"404" String [] PROJECTION = new String [] { //定义一个新的PROJECTION数组,只换掉SNIPPET NoteColumns.ID, NoteColumns.ALERTED_DATE, @@ -434,6 +446,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, }; + // 使用更新后的PROJECTION开始查询 mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, Notes.CONTENT_NOTE_URI, PROJECTION, selection, new String[]{ String.valueOf(mCurrentFolderId) @@ -800,6 +813,14 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt menu.findItem(R.id.menu_secret).setVisible(false); else menu.findItem(R.id.menu_quit_secret).setVisible(false); + + /*通过mode的值,隐藏当前背景对应的按钮*/ + if(mode==-1){ + menu.findItem(R.id.menu_hmbb).setVisible(false); + } + else if(mode==0){ + menu.findItem(R.id.menu_pdx).setVisible(false); + } return true; } @@ -828,7 +849,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt onSearchRequested(); }else if(itemId == R.id.menu_secret){ secret_mode = 1; - AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this); + AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this);//建立新对话框 + //发送确认信息 dialog.setTitle("重要提醒"); dialog.setMessage("您确认进入私密模式吗?"); dialog.setCancelable(false); @@ -836,10 +858,11 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt @Override public void onClick(DialogInterface dialog, int which) { startAsyncNotesListQuery(); - Toast.makeText(NotesListActivity.this,"您已进入私密模式",Toast.LENGTH_SHORT).show(); + Toast.makeText(NotesListActivity.this,"您已进入私密模式",Toast.LENGTH_SHORT).show();//显示对话信息 } }); dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { + //判断点击对话框,弹出新信息 @Override public void onClick(DialogInterface dialog, int which){} }); @@ -848,23 +871,36 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt Toast.makeText(this,"您已进入私密模式",Toast.LENGTH_SHORT).show(); }else if(itemId == R.id.menu_quit_secret){ secret_mode = 0; - AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this); + AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this);//建立新对话框 + //发送确认信息 dialog.setTitle("重要提醒"); dialog.setMessage("您确认退出私密模式吗?"); dialog.setCancelable(false); dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() { + //判断点击对话框,弹出新信息 @Override public void onClick(DialogInterface dialog, int which) { startAsyncNotesListQuery(); - Toast.makeText(NotesListActivity.this,"您已退出私密模式",Toast.LENGTH_SHORT).show(); + Toast.makeText(NotesListActivity.this,"您已退出私密模式",Toast.LENGTH_SHORT).show();//显示对话信息 } }); dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { + //判断点击对话框 @Override public void onClick(DialogInterface dialog, int which){} }); dialog.show(); } + /*实现背景切换的按钮响应*/ + else if(itemId == R.id.menu_hmbb){ + //更改mode对应的值,并且改变背景 + mode = -1; + getWindow().setBackgroundDrawableResource(R.drawable.hmbb); + }else if(itemId == R.id.menu_pdx){ + //更改mode对应的值,并且改变背景 + mode = 0; + getWindow().setBackgroundDrawableResource(R.drawable.pdx); + } return true; }