master
陈@jkccchen123 1 year ago
parent 78590135b4
commit a910e029a6

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -6,4 +6,11 @@
<component name="ProjectType">
<option name="id" value="Android" />
</component>
<component name="VisualizationToolProject">
<option name="state">
<ProjectState>
<option name="scale" value="0.07379862700228833" />
</ProjectState>
</option>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RenderSettings">
<option name="showDecorations" value="true" />
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

@ -1,4 +1,4 @@
#Wed Jan 03 08:16:48 CST 2024
#Wed Jan 03 14:18:25 CST 2024
net.micode.notes.app-main-6\:/color/primary_text_dark.xml=D\:\\anzhuo studio\\2\\Notes-master1\\app\\build\\intermediates\\merged_res\\debug\\color_primary_text_dark.xml.flat
net.micode.notes.app-main-6\:/color/secondary_text_dark.xml=D\:\\anzhuo studio\\2\\Notes-master1\\app\\build\\intermediates\\merged_res\\debug\\color_secondary_text_dark.xml.flat
net.micode.notes.app-main-6\:/drawable-hdpi/bg_btn_set_color.png=D\:\\anzhuo studio\\2\\Notes-master1\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_btn_set_color.png.flat

@ -1,4 +1,4 @@
#Wed Jan 03 08:16:48 CST 2024
#Wed Jan 03 14:18:25 CST 2024
net.micode.notes.app-main-5\:/color/primary_text_dark.xml=D\:\\anzhuo studio\\2\\Notes-master1\\app\\build\\intermediates\\packaged_res\\debug\\color\\primary_text_dark.xml
net.micode.notes.app-main-5\:/color/secondary_text_dark.xml=D\:\\anzhuo studio\\2\\Notes-master1\\app\\build\\intermediates\\packaged_res\\debug\\color\\secondary_text_dark.xml
net.micode.notes.app-main-5\:/drawable-hdpi/bg_btn_set_color.png=D\:\\anzhuo studio\\2\\Notes-master1\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\bg_btn_set_color.png

@ -1,4 +1,4 @@
#Wed Jan 03 08:18:56 CST 2024
#Wed Jan 03 21:20:01 CST 2024
base.0=D\:\\anzhuo studio\\2\\Notes-master1\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\classes.dex
path.0=classes.dex
renamed.0=classes.dex

@ -12,13 +12,17 @@
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\drawable-hdpi\\icon_app.png"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_4x_green.png.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_4x_green.png"
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_grass.png.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\drawable-hdpi\\grass.png"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\menu_call_note_edit.xml.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\menu\\call_note_edit.xml"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_widget_4x_green.png.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\drawable-hdpi\\widget_4x_green.png"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\xml_widget_2x_info.xml.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\xml\\widget_2x_info.xml"
@ -103,6 +107,10 @@
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_font_normal.png.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\drawable-hdpi\\font_normal.png"
},
{
"merged": "net.micode.notes.app-merged_res-4:/layout_note_list.xml.flat",
"source": "net.micode.notes.app-main-6:/layout/note_list.xml"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\layout_widget_4x.xml.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\layout\\widget_4x.xml"
@ -115,10 +123,6 @@
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\layout_account_dialog_title.xml.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\layout\\account_dialog_title.xml"
},
{
"merged": "net.micode.notes.app-merged_res-4:/menu_note_list.xml.flat",
"source": "net.micode.notes.app-main-6:/menu/note_list.xml"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\layout_folder_list_item.xml.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\layout\\folder_list_item.xml"
@ -163,18 +167,10 @@
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\layout_note_list_footer.xml.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\layout\\note_list_footer.xml"
},
{
"merged": "net.micode.notes.app-merged_res-4:/drawable-hdpi_playground1.png.flat",
"source": "net.micode.notes.app-main-6:/drawable-hdpi/playground1.png"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\layout_widget_2x.xml.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\layout\\widget_2x.xml"
},
{
"merged": "net.micode.notes.app-merged_res-4:/drawable-hdpi_grass.png.flat",
"source": "net.micode.notes.app-main-6:/drawable-hdpi/grass.png"
},
{
"merged": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-merged_res-4:\\drawable-hdpi_menu_move.png.flat",
"source": "C:\\Users\\陈\\.gradle\\daemon\\8.0\\net.micode.notes.app-main-6:\\drawable-hdpi\\menu_move.png"

@ -50,9 +50,9 @@
<Button
android:id="@+id/btn_new_note"
android:background="@drawable/new_note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:layout_gravity="bottom" />
android:layout_height="135dp"
android:layout_gravity="bottom"
android:background="@drawable/new_note"
android:focusable="false" />
</FrameLayout>

@ -151,33 +151,15 @@ public class NoteEditActivity extends Activity implements OnClickListener,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
if (savedInstanceState == null && !initActivityState(getIntent())) {
finish();
return;
}
initResources();
//根据id获取添加图片按钮
final ImageButton add_img_btn = (ImageButton) findViewById(R.id.add_img_btn);
//为点击图片按钮设置监听器
add_img_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "onClick: click add image button");
//ACTION_GET_CONTENT: 允许用户选择特殊种类的数据,并返回(特殊种类的数据:照一张相片或录一段音)
Intent loadImage = new Intent(Intent.ACTION_GET_CONTENT);
//Category属性用于指定当前动作Action被执行的环境.
//CATEGORY_OPENABLE; 用来指示一个ACTION_GET_CONTENT的intent
loadImage.addCategory(Intent.CATEGORY_OPENABLE);
loadImage.setType("image/*");
startActivityForResult(loadImage, PHOTO_REQUEST);
}
});
}
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
if (savedInstanceState == null && !initActivityState(getIntent())) {
finish();
return;
}
initResources();
}
/**
* Current activity may be killed when the memory is low. Once it is killed, for another time
@ -884,57 +866,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
showToast(R.string.error_note_empty_for_send_to_desktop);
}
}
//重写onActivityResult()来处理返回的数据
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
ContentResolver resolver = getContentResolver();
switch (requestCode) {
case PHOTO_REQUEST:
Uri originalUri = intent.getData(); //1.获得图片的真实路径
Bitmap bitmap = null;
try {
bitmap = BitmapFactory.decodeStream(resolver.openInputStream(originalUri));//2.解码图片
} catch (FileNotFoundException e) {
Log.d(TAG, "onActivityResult: get file_exception");
e.printStackTrace();
}
if(bitmap != null){
//3.根据Bitmap对象创建ImageSpan对象
Log.d(TAG, "onActivityResult: bitmap is not null");
ImageSpan imageSpan = new ImageSpan(NoteEditActivity.this, bitmap);
String path = getPath(this,originalUri);
//4.使用[local][/local]将path括起来用于之后方便识别图片路径在note中的位置
String img_fragment= "[local]" + path + "[/local]";
//创建一个SpannableString对象以便插入用ImageSpan对象封装的图像
SpannableString spannableString = new SpannableString(img_fragment);
spannableString.setSpan(imageSpan, 0, img_fragment.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//5.将选择的图片追加到EditText中光标所在位置
NoteEditText e = (NoteEditText) findViewById(R.id.note_edit_view);
int index = e.getSelectionStart(); //获取光标所在位置
Log.d(TAG, "Index是: " + index);
Editable edit_text = e.getEditableText();
edit_text.insert(index, spannableString); //将图片插入到光标所在位置
mWorkingNote.mContent = e.getText().toString();
//6.把改动提交到数据库中,两个数据库表都要改的
ContentResolver contentResolver = getContentResolver();
ContentValues contentValues = new ContentValues();
final long id = mWorkingNote.getNoteId();
contentValues.put("snippet",mWorkingNote.mContent);
contentResolver.update(Uri.parse("content://micode_notes/note"), contentValues,"_id=?",new String[]{""+id});
ContentValues contentValues1 = new ContentValues();
contentValues1.put("content",mWorkingNote.mContent);
contentResolver.update(Uri.parse("content://micode_notes/data"), contentValues1,"mime_type=? and note_id=?", new String[]{"vnd.android.cursor.item/text_note",""+id});
}else{
Toast.makeText(NoteEditActivity.this, "获取图片失败", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
private String makeShortcutIconTitle(String content) {
content = content.replace(TAG_CHECKED, "");
@ -950,96 +881,4 @@ protected void onActivityResult(int requestCode, int resultCode, Intent intent)
private void showToast(int resId, int duration) {
Toast.makeText(this, resId, duration).show();
}
//路径字符串格式 转换为 图片image格式
private void convertToImage() {
NoteEditText noteEditText = (NoteEditText) findViewById(R.id.note_edit_view); //获取当前的edit
Editable editable = noteEditText.getText();//1.获取text
String noteText = editable.toString(); //2.将note内容转换为字符串
int length = editable.length(); //内容的长度
//3.截取img片段 [local]+uri+[local]提取uri
for(int i = 0; i < length; i++) {
for(int j = i; j < length; j++) {
String img_fragment = noteText.substring(i, j+1); //img_fragment关于图片路径的片段
if(img_fragment.length() > 15 && img_fragment.endsWith("[/local]") && img_fragment.startsWith("[local]")){
int limit = 7; //[local]为7个字符
//[local][/local]共15个字符剩下的为真正的path长度
int len = img_fragment.length()-15;
//从[local]之后的len个字符就是path
String path = img_fragment.substring(limit,limit+len);//获取到了图片路径
Bitmap bitmap = null;
Log.d(TAG, "图片的路径是:"+path);
try {
bitmap = BitmapFactory.decodeFile(path);//将图片路径解码为图片格式
} catch (Exception e) {
e.printStackTrace();
}
if(bitmap!=null){ //若图片存在
Log.d(TAG, "图片不为null");
ImageSpan imageSpan = new ImageSpan(NoteEditActivity.this, bitmap);
//4.创建一个SpannableString对象以便插入用ImageSpan对象封装的图像
String ss = "[local]" + path + "[/local]";
SpannableString spannableString = new SpannableString(ss);
//5.将指定的标记对象附加到文本的开始...结束范围
spannableString.setSpan(imageSpan, 0, ss.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Log.d(TAG, "Create spannable string success!");
Editable edit_text = noteEditText.getEditableText();
edit_text.delete(i,i+len+15); //6.删掉图片路径的文字
edit_text.insert(i, spannableString); //7.在路径的起始位置插入图片
}
}
}
}
}
//获取文件的real path
public String getPath(final Context context, final Uri uri) {
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
// ExternalStorageProvider
// if (isExternalStorageDocument(uri)) {
// final String docId = DocumentsContract.getDocumentId(uri);
// final String[] split = docId.split(":");
// final String type = split[0];
//
// if ("primary".equalsIgnoreCase(type)) {
// return Environment.getExternalStorageDirectory() + "/" + split[1];
// }
// }
// // DownloadsProvider
// else if (isDownloadsDocument(uri)) {
// final String id = DocumentsContract.getDocumentId(uri);
// final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
// return getDataColumn(context, contentUri, null, null);
// }
// MediaProvider
// else
if (isMediaDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
Uri contentUri = null;
if ("image".equals(type)) {
contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
}
final String selection = "_id=?";
final String[] selectionArgs = new String[]{split[1]};
return getDataColumn(context, contentUri, selection, selectionArgs);
}
}
// Media
else if ("content".equalsIgnoreCase(uri.getScheme())) {
return getDataColumn(context, uri, null, null);
}
// File
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
}

@ -397,13 +397,4 @@
android:src="@drawable/selected" />
</FrameLayout>
</LinearLayout>
<ImageButton
android:id="@+id/add_img_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="7dp"
android:layout_marginTop="600dp"
android:layout_marginBottom="7dp"
android:src="@android:drawable/ic_menu_gallery" />
</FrameLayout>

@ -50,9 +50,9 @@
<Button
android:id="@+id/btn_new_note"
android:background="@drawable/new_note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:layout_gravity="bottom" />
android:layout_height="135dp"
android:layout_gravity="bottom"
android:background="@drawable/new_note"
android:focusable="false" />
</FrameLayout>

Loading…
Cancel
Save