【คำอธิบายปัญหา】
เรามักจะเห็นตัวอย่างการเลื่อนเช่นเนื้อหาของหน้าเว็บในเบราว์เซอร์ UC เมื่อมีเนื้อหาจำนวนมากมันมีเหตุผลที่จะใช้การปนเปื้อนการเลื่อนเพื่อแสดง ในการวาดภาพในผืนผ้าใบเนื้อหาส่วนเกินจะถูกตัดทอน จะตระหนักถึงการแสดงการปนเปื้อนการเลื่อนได้อย่างไร?
【หลักการ】
มีฟังก์ชั่นการแปลงพิกัดใน Javame เมื่อเหตุการณ์คีย์ที่สอดคล้องกันถูกทริกเกอร์เราปล่อยให้มันแสดงหน้าที่เกี่ยวข้องและเลื่อนแถบเลื่อนไปยังตำแหน่งที่สอดคล้องกัน
【รายการรหัส】
showhelp.javapackage com.token.view; . Token.util.uicontroller; หัว; จริง); 0; , "" return "); หน้าจอแสดงผล /n " +" 3 หน้าจอแสดงผล; การแสดงหน้าจอแสดงผล หน้าจอเลื่อนหน้า จอแสดงผล Scroll Page; จอแสดงผล Scroll Page; จอแสดงผล Scroll Page; จอแสดงผล Scroll Page; ความยาว*ft.gethe ight ()/(ความสูง head.menuheight-menu.menuheight-2*ระยะขอบ) +1; ) *ft.getheight (); .menuheight+มาร์จิ้น, ความกว้าง, bodyheight); กราฟิก translate (0, dir*currentpageindex*bodyheight); , ฉัน*ft.getheight () +head.menuheight +margin, graphics.top | graphics.left); System.out.println (graphics.gettranslatey ()); head.menuheight, 2, barheight); Keycode) {//system.out .EVENTID.EVENT_MAIN_SCREEN, ARGS); ดัชนี> 0) {currentPageIndex--;}} {// dir = 0; /dir = 0;
* โปรดดู javame serialization (3) สำหรับ uicontroller - พูดคุยเกี่ยวกับรูปแบบการออกแบบ MVC ดังนั้นฉันจะไม่ทำซ้ำที่นี่
【วิเคราะห์】
1 String Split
String info_wrap1 [] = StringDealMethod.Format (ข้อมูล, WIDTH-15, ft);
สำหรับรายละเอียดโปรดดู javame serialization (4) - การวาดข้อความการห่อเส้นอัตโนมัติ
2 หลีกเลี่ยงการตัดคำ
วิธีการวาดข้อความทั้งหมดในพื้นที่ที่ระบุโดยไม่ต้องตัดข้อความเนื่องจากการเปลี่ยนแปลงในตัวอักษรหรือความสูงของหน้าจอทำให้ข้อความมี "คำที่ถูกตัดครึ่ง"?
bodyheight = ((int) (head.head.menuheight-menu.menuheight) /ft.getheight ())*ft.getheight ();
หลังจากการประมวลผลข้างต้นความสูงของพื้นที่การเลื่อนจะเป็นจำนวนเต็มของความสูงของตัวอักษรเสมอดังนั้นปัญหาการตัดทอนคำที่กล่าวถึงข้างต้นจะไม่เกิดขึ้น
3 วาดข้อความ
สำหรับ (int i = 0; i <info_wrap1.length; i ++) {graphics.drawstring (info_wrap1 [i], 5, i * ft.getheight ()+head.menuheight+margin, graphics.to p | graphics.left) ;
4 พิกัดการเปลี่ยนแปลง
graphics.cliprect (0, head.menuheight+margin, ความกว้าง, bodyheight);
หลังจากวาดข้อความให้แปลงพิกัดกลับ
graphics.translate (0, -dir*currentpageindex*bodyheight);
5 DRACK SCROLLBARS
โมฆะส่วนตัว drawscrollbar () {int barheight = ความสูง head.menuheight-menu.menuheight; Color .SelectBg);
การจัดการกิจกรรม 6 ครั้ง
เมื่อตรวจพบเหตุการณ์การกดปุ่มจะทำการดำเนินการเปิดหน้า
Void Keypressed (Int Keycode) {//system.out.println(keycode); .HandleEvent (uicontroller.eventid.event_main_screen, args); 1; } else {// dir = 0;
วิธีการตัวอย่างนี้สามารถตรวจจับความกว้างและความยาวของหน้าจออย่างต่อเนื่องและทำให้ข้อความตามขนาดของตัวอักษรและแสดงผล
เอฟเฟกต์การแสดงผลการเลื่อนรูปภาพ