บทความ

การสร้างปุ่มแชร์ บนมือถือ Android ด้วย ShareActionProvider

รูปภาพ
ShareActionProvider extends มาจาก Action Provider Class ซึ่งเริ่มจาก Android 4.0 (API 11) ซึ่งเป็นตัวจัดการเรียกแอป social media เพื่อแชร์ข้อมูลไปยังเพื่อน ๆ หรือ กลุ่มเพื่อน โดยเรียกใช้ โซเชียลแอปที่มีในมือถือนั้น ๆ เช่น Line Facebook Email Messenger เป็นต้น แล้วแต่ว่า ในมือถือนั้น ๆ จะติดตั้งแอป อะไรไว้บ้าง ShareActionProvider ก็จะนำมาให้เลือก และจัดการให้ทั้งหมด ดังภาพ ( ภาพที่ 1 แสดงไอคอนแชร์ ภาพที่ 2 เมื่อกดปุ่มแชร์ และภาพที่ 3 เมื่อกดปุ่มอีเมล) ปัญหาคือ แล้วจะเรียกใช้อย่างไร ปัญหามักจะอยู่ที่การเชื่อมโยงระหว่าง ShareActionProvider กับ menu itemในไฟล์ menu.xml เช่น บอกให้ไปใช้ MenuItemCompat หรือ มีปัญหาการ cast บอกว่า ไม่สามารถ cast จาก ActionProvider ไปยัง ShareActionProvider เป็นต้น  ในตัวอย่างนี้ ใช้ Android Studio 1.5 และใช้ App Bar ไม่ใช้ Action Bar  หลักการในการเรียกใช้งาน ShareActionProvider กำหนด Style ให้ไม่ใช้ Action Bar และเรียกใช้ใน theme ให้สอดคล้องกัน สร้าง menu item ใน menu.xml โดยไม่ต้องระบุไอคอน เพราะ ShareActionProvider จัดการ...

การสร้างปุ่มกลับ บน Toobar ของ Android Studio

รูปภาพ
Android Studio API 21 ได้นำ Toolbar มาใช้แทน ActionBar โดยมีคุณสมบัติเพิ่มขึ้นมาก ในตัวอย่างต่อไปนี้ จะเป็นการสร้างปุ่มกลับเมนู บน Toolbar ดังภาพ ปุ่มกลับเมนู ไม่ใช่ปุ่มกลับหน้าที่ผ่านมา แต่เป็นปุ่มกลับเมนูที่คลิกมาหน้าปัจจุบัน หรือ เมนูที่อยู่เหนืออีกชั้นหนึ่ง รายละเอียดดูที่  http://developer.android.com/design/patterns/navigation.html ข้อดีของ Android Studio ที่ผมชอบ คือ เขามีการเขียนโค้ดเตรียมไว้ให้พร้อม เราเพียงแต่ให้รู้ว่า จะเพิ่มเติมอะไร อย่างไร นอกจากนี้ ยังมี  code hint ทำให้ทุ่นเวลาการเขียน พร้อมทั้งตรวจสอบความถูกต้องไปในตัว รุ่นที่ใช้อยู่นี้ คือ Android Studio 1.5 การสร้างปุ่มกลับ เริ่มจากสร้าง Project ใหม่ เลือก API 11 และ Blank Project เมื่อเปิดเข้ามา จะเห็นว่า Android Studio 1.5 สร้าง Toolbar ว่าง ๆ ไว้ให้แล้ว พร้อมกับสร้าง menu_main.xml ไว้ให้ด้วย เพื่อให้ตกแต่งเพิ่มเติม เช่น ใส่ปุ่มกลับ เพิ่มชื่อของ Activity เพิ่ม Overflow menu เป็นต้น ปุ่มกลับต้องมี 2 หน้า ดังนั้นต้องสร้างหน้าใหม่ หรือ Activity ใหม่ โดยไปที่  Java > [PackageName]...

การทำภาพให้คมชัดขึ้น ด้วย Photoshop CS5

รูปภาพ
เดี๋ยวนี้การตกแต่งภาพทำได้หลายอย่าง ยิ่งถ้าถ่ายจากโทรศัพท์มือถือ ยิ่งทำได้ง่ายมาก เพราะมี App ถ่ายภาพที่มาพร้อมกับฟิลเตอร์สำหรับตกแต่งภาพได้หลายอย่าง เช่น  Camera 360 Ultimate กล้องที่มากับโทรศัพท์ของ Samsung ก็มี Filter ให้แต่งภาพสวย ๆ ได้หลายแบบ อย่างไรก็ตาม กล้องดิจิตอลแบบเก่าก็ยังใช้งานได้ดี โดยเฉพาะการถ่ายภาพในระยะใกล้ ซึ่งกล้องมือถือยังทำได้ไม่ดีเท่ากับกล้องดิจิตอล เพราะกล้องมือถือใช้การ Zoom แบบ    digital zooming แต่กล้องดิจิตอล ใช้เล็นซ์ในการซูมภาพ ซึ่งให้ภาพที่มีคุณภาพดีกว่า ภาพที่ถ่ายจากกล้องบางครั้งอาจจะไม่คมชัด สามารถทำให้คมชัดขึ้นได้อย่างง่าย ๆ ด้วยโปรแกรม Photoshop เทคนิคการทำภาพให้คมชัดขึ้น เปิดโปรแกรม Photoshop และเปิดภาพที่ต้องการ คลิกขวาที่ Layers (ถ้าไม่เห็น Layers ให้ไปที่ Window > Layers หรือ กด F7) และเลือก Duplicate เพื่อคัดลอกเป็นอีกขั้นหนึ่ง คลิกเลือกชั้นใหม่ที่เกิดขึ้น (ถ้าชั้นใหม่ถูกล็อคอยู่ให้คลิกลูกกุญแจเพื่อเอาล็อคออกก่อน) ไปที่ Filter > Other > High Pass... ปรับ Slide เพื่อกำหนดค่า ถ้าต้องการให้คมชัดมาก ให้ตั้งค่...

มะรุม Moringa

รูปภาพ
วันนี้ฟังวิทยุรายการ Gary Null Show วันที่ 10.28.15 พูดถึงใบ Moringa สงสัยว่ามันใบอะไรของมัน ถึงได้มีคุณสมบัติเยอะแยะมากมายมหาศาล แถมมีแหล่งกำเนิดแถว ๆ ภูเขาหิมาลัย ประเทศอินเดียอีกต่างหาก หาความหมายดูจึงเห็นว่าเป็นใบ มะรุม นั่นเอง Gary Null บอกว่ามะรุม มีคุณสมบัติ ยับยั้งการเจริญของเนื้องอก (anti-tumors) แก้อักเสบ (anti-inflammatory)  ต้านแผลในกระเพาะอาหาร (anti-ulcer)  คลายกล้ามเนื้อเกร็ง (antispasmodic)  ต้านความดันโลหิตสูง (anti-hypertensive)  ป้องกัน/บรรเทาโรคเบาหวาน (anti-diabetic)  ต้านเชื้อแบคทีเรีย (anti-bacterial)   และต้านเชื้อรา (anti-fungal) ในใบมะรุม 1 ถ้วย(serving) มีสารอาหารที่มีประโยชน์ ถึง 92 ชนิด เช่น กรดอะมิโน วิตามินซี วิตามินบี 6 โปแตสเซี่ยม แมกนีเซียม เหล็ก แคลเซี่ยม และวิตามินเอ โดยที่สารอาหารแต่ละชนิดมีปริมาณจำนวนมาก เช่น มีวิตามินเอ ถึง 272 % ของจำนวนที่ต้องการในแต่ละวัน  มีแคลเซี่ยม จำนวน 175 % ของจำนวนที่ต้องการในแต่ละวัน Gary Null บอกว่า มีประโยชน์มากสำหรับผู้ที่เป็นโรคโลหิตจาง (anemia) ปวดข้อ ข้ออักเสบ (arthritis และ...

การแก้ปัญหา #N/A ของสูตร vlookup

รูปภาพ
สูตร vlookup() มีรูปแบบการใช้ ดังนี้ VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]) lookup_value คือ ข้อมูลที่ต้องการให้ค้นหา table_array คือ ตารางข้อมูลที่ไปทำการค้นหา col_index_num คือ ตำแหน่งคอลัมน์ในตารางข้อมูลที่ต้องการให้นำมาแสดงเมื่อพบข้อมูลที่ค้นหาแล้ว ตำแหน่งคอลัมน์แรก คือ 1 range_lookup คือ ลักษณะการค้น      ถ้าต้องการให้ค้นคำที่เหมือนกับคำค้นทุกประการ ให้กำหนดเป็น False หรือ 0      ถ้าให้ค้นแบบใกล้เคียง ให้กำหนดเป็น True หรือ 1 และต้องเรียงข้อมูลในตารางจากน้อยไปหามาก      ถ้าไม่ระบุ Excel จะใช้ถือว่าเป็น true สูตร vlookup() ของ Excel เป็นสูตรที่มีประโยชน์ แต่ก็มีข้อที่ต้องระวังหลายอย่างเหมือนกัน มิฉะนั้น จะไม่แสดงค่าตามที่ต้องการ เช่น อาจจะแสดงค่า  #N/A เป็นต้น ดูตัวอย่างข้างล่างนี้ ท่านทราบหรือไม่ว่า ทำไมสูตร vlookup() จึงไม่แสดงชื่อที่ต้องการ ถ้าพิจารณาจากสูตรที่ใช้  จะเห็นว่า เป็นการค้นหาแบบ exact match คือ เหมือนคำค้นที่ต้องการ คือ ให้แสดงชื่อคนในตาราง D26:J36 ที่ได้คะแ...

java XML Parser ภาษาไทย

รูปภาพ
การอ่านไฟล์ xml ที่มีตัวอักษรภาษาไทย ด้วยภาษาจาวา บางครั้งจะเกิด Error โดยแจ้งว่า เป็น Invalid byte 2 of 2-byte UTF-8 sequence สาเหตุหลัก คือเรื่องของ encoding ซึ่งจำเป็นต้องใช้สำหรับการเปลี่ยนไฟล์จากรูปแบบหนึ่ง ไปสู่อีกรูปแบบหนึ่ง การแก้ปัญหาหรือการหลีกเลี่ยงไม่ให้เกิดปัญหา คือการกำหนด File Encoding ของไฟล์ XML ให้เป็น UTF-8 ในกรณีที่ ไฟล์ XML ใช้ Encoding เป็น ANSI ต้องเปลี่ยนให้เป็น UTF-8 เพื่อแก้ไขปัญหาดังกล่าว การเปลี่ยน Encoding ทำได้ โดยใช้โปรแกรม Text-editor เช่น EditPlue หรือ Notepad ซึ่งทำได้ ดังนี้ การเปลี่ยน File Encoding ด้วย EditPlus เปิดไฟล์ XML ด้วยโปรแกรม EditPlus ไปที่ Document > File Encoding > Change File Encoding... เลือก UTF-8 บันทึกไฟล์ การเปลี่ยน File Encoding ด้วย Notepad (Windows 10) เปิดโปรแกรม Notepad ไปที่ File > Open เลือกเปิดไฟล์ทั้งหมด (All Files) ไปที่ไฟล์ xml ที่ต้องการ และคลิกเลือก คลิกเปลี่ยน Encoding  คลิก Open เพื่อเปิดไฟล์ คลิก Save และปิดไฟล์ เมื่อเรียกใช้ XML Parser ของ  Java จะไม่...

มะม่วงหิมพานต์: ยาเม็ดวิตามินธรรมชาติ

รูปภาพ
มะม่วงหิมพานต์ ได้รับขนานนามว่าเป็น ยาเม็ดวิตามินธรรมชาติ (nature’s vitamin pill) มีแร่ธาตุสารอาหารหลายชนิดที่จำเป็นต่อร่างกาย เช่น ธาตุเหล็ก แมกนีเซียม ฟอสฟอรัส สังกะสี ทองแดง และแมงกานีส และวิตามินเค ซี่งส่งผลต่อสุขภาพโดยรวมของร่างกาย แมงกานีส ช่วยบรรเทาอาการปวดหัวไมเกรน ช่วยให้ความจำดีขึ้น ช่วยลดความดันโลหิต ธาตุทองแดงช่วยต้านอนุมูลอิสระ ป้องกันโรคหัวใจ และมะเร็ง แมกนีเซียมร่วมกับธาตุทองแดงช่วยทำให้กระดูกแข็งแรง แมกนีเซียมร่วมกับเมลานิน() และ อีลาสติน() ช่วยให้ข้อต่อยืดหยุ่น ช่วยให้เส้นประสาทให้ทำงานได้ดี นอกจากนี้ มะม่วงหิมพานต์ มี proanthocyanidins ซึ่งช่วยต้านการแบ่งตัวของเซลล์มะเร็ง โดยเฉพาะมะเร็งลำไส้ มะม่วงหิมพานต์ช่วยควบคุมน้ำหนัก เพราะมีอัตราส่วนของไขมันที่นักวิทยาศาสตร์ยอมรับว่า เป็นอัตราส่วนที่สุดยอดเพื่อสุขภาพ คือ มี ไขมัน saturated monounsaturated และ polyunsaturated ใน อัตราส่วน 1:2:1 นอกจากนี้ มะม่วงหิมพานต์ ยังไม่มีคอเรสเตอรอล อีกด้วย และแม้ว่า มะม่วงหิมพานต์จะมีไขมัน แต่เป็นไขมันที่ไม่เป็นอ้นตรายต่อหัวใจ และ ถ้าจะเปรียบเทียบปริมาณไขมันในมะม่วงหิมพานต์...

การใช้ Text Field ของ Actionscript 3

รูปภาพ
TextField ใน ActionScript 3 มีไว้สำหรับบรรจุข้อความ หรือภาพ และนำมาแสดงที่หน้าจอ โดยสามารถนำข้อมูลมาจากฐานข้อมูล ไฟล์ XML ไฟล์ข้อความที่เป็น Text ก็ได้ สามารถจัดรูปแบบข้อความใน TextField ได้ หรือจัดรูปแบบโดยใช้ HTML ก็ได้ เช่นกัน ตัวอย่าง การกำหนดตำแหน่ง ขนาด ของ TextField  import flash.display.Sprite; import flash.text.*; var myTextBox:TextField = new TextField();; var myText:String = "This is a test. "; myTextBox.width = 200; myTextBox.height = 50; myTextBox.multiline = true; myTextBox.wordWrap = true; myTextBox.border = true; myTextBox.borderColor = 00000000 addChild(myTextBox); myTextBox.htmlText = myText; การกำหนดตำแหน่งของ TextField ที่สัมพันธ์กับ TextField อื่น ถ้าต้องการวาง TextField ต่อกัน โดยข้อความใน TextField มีการเปลี่ยนแปลง และกำหนดให้ตำแหน่งของ TextField ปรับตามขนาดของข้อความ ดังภาพ จะทำอย่างไร จะเห็นว่า TextField เรียงต่อกันลงมา แม้ว่าข้อความใน TextField จะเปลี่ยนเพิ่มมากขึ้น หรือน้อยลง ตำแหน่งและขนาดของ TextField ก็จะปรับตามไปด้วย...

เทคนิค Acrobat Reader

รูปภาพ
ผมปวดหัวกับการใช้ Adobe Acrobat Reader หลายอย่าง ไม่ใช่เพราะ Acrobat ทำไม่ได้ แต่ผมไม่รู้ว่าทำยังไง มากกว่า หลังจากที่ค้น ๆ ดู ก็เลยเอามาเขียนไว้ กันลืม ปุ่มกลับ ใน Acrobat           ปุ่มกลับหรือ Back Button ในลักษณะเดียวกับปุ่มกลับบน Browser นั่นคือ เมื่อคลิกลิงค์ไปแล้ว คลิกปุ่มกลับ ให้กลับที่เดิม ปุ่มนี้ ไม่มีให้เห็นบน Toolbar แต่ซ่อนเอาไว้ ผมใช้ Acrobat DC ซึ่ง ปุ่มนี้จะซ่อนเอาไว้ วิธีการนำมาแสดง ทำดังนี้ คลิกขวาที่แถบเครื่องมือ เลือก Show Page Navigation Tools คลิกเครื่องหมายถูก หน้า Previous View จะมีปุ่มกลับ ให้เห็นบน Toolbar  ถ้าไม่ต้องการสร้างปุ่ม สามารถไปที่ View > Page Navigation > Previous View การซ่อนแถบเครื่องมือด้านขวา            แถบเครื่องมือด้านขวา ทำให้บริเวณที่จะอ่านเอกสารแคบลง วิธีการซ่อน           ไปที่ View > Show/Hide > Tools Pane แล้วคลิกเครื่องหมายถูกออก การจัดหน้าให้พอดีเมื่อขยายตัวหนังสือให้ใหญ่ขึ้น       ...

การกำหนดทศนิยม ในช่องแถบสูตร Formula bar ของ Excel

รูปภาพ
โดยปกติ การกำหนดทศนิยม ใช้การกำหนดรูปแบบในเซลล์ ซึ่งมีหลายรูปแบบให้เลือกอยู่แล้ว อย่างไรก็ตาม ถ้าหากมีการใช้สูตร และรวมค่าในช่องแถบสูตร (Formula bar) ซึ่งมีข้อความปนอยู่ด้วย ก็จะไม่สามารถใช้การกำหนดรูปแบบของเซลล์ได้ จะทำอย่างไรดี สูตรที่ต้องการกำหนดรูปแบบ ให้เป็นทศนิยม 2 ตำแหน่ง ในภาพ จะเห็นว่า มีการใช้สูตรในเซลล์ G4 และได้ผลลัพธ์ ค่าร้อยละ 66.6666666666667 เราต้องการให้แสดงเพียงทศนิยม 2 ตำแหน่ง เท่านั้น วิธีการ เนื่องจากไม่สามารถใช้การกำหนดรูปแบบเซลล์ เพื่อกำหนดทศนิยม เป็น 2 ตำแหน่งได้ เพราะมีข้อความปนอยู่ด้วย และนอกจากนี้ สูตร Format() ก็ไม่สามารถใช้ได้ เนื่องจาก ในแถบสูตร หรือ Formula bar ไม่สามารถใช้สูตร หรือ Function ของ VBA ได้ ใช้ได้แต่ Worksheet Function เท่านั้น ทางออกคือ การใช้ TEXT() ซึ่งเป็น Worksheet Function  โดยมีรูปแบบ ดังนี้                                          TEXT(ค่าตัวเลข, รูปแบบ) ฟ้งก์ชัน TEXT สามารถรับรูปแบบได้หลายอย่าง คือ ข้อมูลเดิ...

เทคนิค Access VBA

รูปภาพ
เป็นเทคนิค 4 อย่าง ที่เขียนเอาไว้ กันลืม การใช้ฟอร์มย่อย หรือ subform การใช้ Lookup ในฟิลด์ของตาราง การสร้างฟอร์มค้นหาข้อมูล หรือ Search การยกเลิก Layout การใช้ฟอร์มย่อย หรือ subform การอ้างอิง Control ใน ฟอร์มย่อย จากฟอร์มหลัก ใช้รูปแบบ คือ Forms![main form name]![subform control name].Form![control name] -Forms เป็นการอ้างถึง Collection ของฟอร์ม - [main form name]  คือชื่อฟอร์มหลัก - [subform control name] คือชื่อที่ตั้งเป็นชื่อ Control สำหรับใส่ฟอร์มย่อย ไม่ใช่ชื่อฟอร์มย่อย แต่ก็อาจจะเป็นชื่อเดียวกันได้ ถ้าตั้งชื่อเหมือนกัน นั่นคือ ฟอร์มย่อย ต้องอยู่ใน Control ของฟอร์มหลัก เวลาอ้างถึงจึงต้องอ้างชื่อของ Control ที่เป็นที่อยู่ของฟอร์มย่อย -Form หมายถึงฟอร์มย่อย -[control name] คือชื่อของ control ที่ต้องการอ้างถึง ตัวอย่าง Forms![frmLearnerUpdate]![learner_subform].Form![txtFname] สามารถทำให้สั้นเข้า โดยใช้เครื่องหมาย . แทนเครื่องหมาย ! และใช้คำว่า Me แทนฟอร์มหลัก เช่น Me.[learner_subform].Form.[txtFname] การเปิดฟอร์มย่อยแบบว่าง ๆ โดยไม่มีข้อมูลใด ๆ ดังภาพ โดย...