android項目 之 記事本(7)----- 手寫功能之刪除、恢複和清空

來源:互聯網
上載者:User

標籤:筆跡的刪除 清空 恢複   手寫功能的實現   

          上一節,為記事本添加了手寫的功能,但是沒有實現底部按鈕的各種功能,這節就先實現撤銷,恢複和清空的功用。

          因為不會錄製螢幕成gif圖片,所以就以圖片形式給出吧,不是很形象,湊合著看:

         

         

         

             

              顯然,需要為底部GridView的添加item單擊事件:

private GridView paint_bottomMenu;
paint_bottomMenu = (GridView)findViewById(R.id.paintBottomMenu);paint_bottomMenu.setOnItemClickListener(new MenuClickEvent());

              下面就是在監聽器中實現具體的功能:

               1.刪除功能

                     1)取得最後一個字的位置

                     2)將第0個到倒數第二個位置的所有內容設定為自訂editText的內容,間接實現刪除最後一個字的功能

                     3)更新最後一個字的位置為刪除後的最後一個字的位置

                     3)將刪除的字儲存在列表中(其實儲存在棧中更好,因為是先進後出),用於恢複。

            代碼如下:

  private ArrayList<CharSequence> deleteChar = new ArrayList<CharSequence>();
//刪除case 2:Editable editable = et_handwrite.getText();//找到最後一個手寫字,並刪除最後一個手寫字int selectionEnd = et_handwrite.getSelectionEnd();  System.out.println("end = "+ selectionEnd);  if(selectionEnd < 1){  et_handwrite.setText("");  }  else if(selectionEnd == 1){  et_handwrite.setText("");  CharSequence deleteCharSeq = editable.subSequence(0,1);  deleteChar.add(deleteCharSeq);  }  else{  System.out.println("delete");  CharSequence charSeq = editable.subSequence(0, selectionEnd - 1);  CharSequence deleteCharSeq = editable.subSequence(selectionEnd - 1,selectionEnd);  et_handwrite.setText(charSeq);  et_handwrite.setSelection(selectionEnd - 1);  //將刪除的字儲存到列表中,以便恢複使用  deleteChar.add(deleteCharSeq);  }break;


             2. 恢複功能:

                   1)取出刪除列表中的最後一個元素

                   2)將取出的元素添加在自訂editText的末尾

                   3)從刪除列表中刪掉最後一個元素

//恢複   case 3:  //取出刪除列表中的元素  int length = deleteChar.size();  if(length > 0){  et_handwrite.append(deleteChar.get(deleteChar.size()-1));  deleteChar.remove(deleteChar.size()-1);  }    break;

           

               3.清空功能:
                         1)建立Dialog,彈出是否刪除提示

                         2)為Dialog添加PositiveButton和setNegativeButton

                         3)在PositiveButton單擊事件中,設定自訂editText的內容為空白

//清空螢幕 case 4 :  if(et_handwrite.getSelectionEnd() > 0){  AlertDialog.Builder builder = new Builder(HandWriteActivity.this);builder.setTitle("您確定要清空所有嗎?");builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {et_handwrite.setText("");dialog.cancel();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}});Dialog dialog = builder.create();dialog.show();}break;


           這樣,手寫的三個準系統就已實現,對於設定畫筆的粗細和顏色,以後再做。

             

            

           

android項目 之 記事本(7)----- 手寫功能之刪除、恢複和清空

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.