วันจันทร์ที่ 3 กันยายน พ.ศ. 2555

การแก้ไขให้ Android Application แสดง Splash Screen เพียงครั้งเดียว

เมื่อเราสร้าง Splash Screen ขึ้นมาแล้ว Android จะนับเป็น Activity ที่เปิดขึ้นมาและเมื่อเราเปิด Activity อื่นๆ Activity ของ Splash Screen จะถูกเก็บเข้าไปยังหน่วยความจำทำให้เมื่อเรากดปุ่ม back จากใน Activity หลักของเราจะทำให้กลับมาที่หน้าของ Splash Screen อีกทางแก้ก็คือให้แก้ไขไฟล์ AndroidManifest.xml แล้วใส่ android:noHistory="true" เข้าไปยังแท๊ก Activity ของ Splash Screen ซึ่งจะทำให้ Activity ของ Splash Screen ไม่ถูกเก็บเข้าสู่หน่วยความจำเมื่อเรากด back จาก Activity หลักก็จะทำให้ออกจาก Application ได้ทันที
ที่มา: stackoverflow.com 

การสร้าง Splash Screen สำหรับ Android Application

เนื่องจากผมประสบปัญหา Splash Screen ของ App Android ที่เขียนไว้ไม่สามารถใช้งานได้บน Android 4.0 ผมขออ้างอิงวิธีการแก้ปัญหาจาก StackOverFlow โพสนี้นะครับ โดย R.layout.splash คือหน้าจอของ Splash Screen ที่เราสร้างขึ้นเพื่อแสดงนะครับ ส่วน com.lars.DrinkRecOrder.splashscreen.DrinkRecOrderActivity คือ Activity ที่จะให้เปิดขึ้นเมื่อแสดง Splash Screen จบ
package com.lars.DrinkRecOrder;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {

                /* start the activity */
                startActivity(new Intent("com.lars.DrinkRecOrder.splashscreen.DrinkRecOrderActivity"));
            }
        }, 5000);

    }
}
ที่มา: stackoverflow.com

วันอาทิตย์ที่ 26 กุมภาพันธ์ พ.ศ. 2555

NVIDIA เปิดตัว DirectTouch platform สัมผัสที่ลื่นขึ้นและใช้พลังงานที่น้อยลง


Picture from engadget.com
DirectTouch platform ที่ทาง NVIDIA ได้เปิดตัวนั้นเป็นการพัฒนาในส่วนของการสัมผัสบนหน้าจอโดยเปลี่ยนจากแบบเดิมที่การรับข้อมูลจากหน้าจอจะต้องผ่าน Controller ของ touch screen ก่อนแล้วจึงถูกส่งผ่านไปยัง CPU ของตัว Device (AD -> Controller -> CPU) เป็นการรับข้อมูลจากหน้าจอสัมผัสแล้วส่งผ่านไปที่ CPU ของตัว Device เลย (AD -> CPU) ทำให้ระบบสัมผัสสามารถประมวลผลการสัมผัสได้รวดเร็วยิ่งขึ้นและสามารถลดการใช้พลังงานด้วย แต่นี่ก็เป็นเพียงข้อมูลเบื้องต้นเท่านั้นเพราะถึงแม้จะมีผลิต touch sensor หลายราย (SynapticsAtmel,N-trig, Raydium, Cypress , Focaltech) ออกมาเห็นด้วยกับเทคโนโลยีนี้แต่เทคโนโลยีนี้ก็ใช้ได้กับเพียงแพลทฟอร์ม Tegra 3 ของ NVIDIA เท่านั้น ซึ่งหากผู้ผลิต CPU รายอื่นจะใช้เทคโนโลยีนี้บ้างเราก็ไม่รู้จะทำให้มีปัญหาทางลิขสิทธิ์หรือไม่เพราะหากผู้ผลิด CPU แพลทฟอร์มอื่นไม่สามารถใช้เทคโนโลยีนี้ได้ทางฝั่งผู้ผลิต touch sensor ก็จะไม่สามารถผลิต touch sensor ที่รองรับ DirectTouch platform ในจำนวนมากๆได้แต่ถึงอย่างไรก็ดีก็เป็นแนวโน้มที่ดีหาก Android Device จะมีการรับสัมผัสบนหน้าจอที่รวดเร็วและแม่นยำได้ไกล้เคียง iOS Device เสียที




ที่มา: engadget.com