หน้าเว็บ

แสดงบทความที่มีป้ายกำกับ android แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ android แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 6 ธันวาคม พ.ศ. 2555

get friends on location area

พอดี  ผมเห็นมีแต่คนมาถามเรื่องนี้อ่ะครับ   เรื่องโปรเจ็คจบผม android (Social Network Location)
ผมไม่สามารถที่จะให้ source code ทั้งหมดไปได้น่ะครับ  เพราะผมจะนำไปพัฒนาต่อ
แต่ผมสามารถช่วยเหลือในบางส่วนได้ครับ

วันนี้  ผมก็เลยเอามาให้ดูกันเลยแล้วกันครับว่า source code search around ทางฝั่ง server (PHP and MySQL)  มันเป็นยังไง
อันนี้ return data เป็น json น่ะครับ
android ก็แค่มา get เอาข้อมูลไปก็แค่นั้นเอง

code คือ return list of friends on location area

วันจันทร์ที่ 2 เมษายน พ.ศ. 2555

การปักหมุด และ การทำ balloon popup google map android

การ clear focus EditText android

        โดยปกติแล้ว  ถ้าหน้า Activity ของเรา มี EditText อยู่ EditText นั้นจะถูก Focus โดยอัตโนมัติเวลาที่เราเข้าไปยังหน้านั้น  วิธีแก้ที่ไม่ให้มันโฟกัสอัตโนมัติ  ทำได้ดังนี้ครับ

ปัญหา


เห็นอะไรมั้ยครับว่ามัน Focus เองอัตโนมัติ  ทั้งๆที่เราไม่ได้ต้องการเลย

วาดวงกลมบน google map android


การทำ dynamic layout android

        วันนี้ผมจะมาแนะนำการทำ dynamic layout ใน android น่ะครับ ไม่ทราบว่าคนอื่นๆ จะเรียกมันว่ายังไง   ถ้าผมเรียกผิดไปก็ขออภัยด้วยครับ
        การทำ dynamic layout ในที่นี้ก็คือ การสร้าง pattern layout ขึ้นมาไฟล์เดียว(.xml ไฟล์เดียว) จากนั้นก็เรียกใช้ได้ตลอด  ซึ่งมันก็จะมีรูปแบบเหมือนๆกัน แต่เนื้อหาข้างในต่างกัน ดังรูปครับ


เรามาดูวิธีการกันเลยดีกว่าครับ

android : text hint

วันเสาร์ที่ 24 มีนาคม พ.ศ. 2555

การทำ option menu android


1. สร้างโฟลเดอร์ menu ไว้ภายใต้ res

การทำ fadein animation android

1. สร้างโฟลเดอร์ชื่อ anim ไว้ภายใต้ res ดังนี้


2. สร้าง file xml สำหรับทำ fadein ไว้ใน anim  จะตั้งชื่อว่าอะไรก็ได้  แล้วเขียนโค๊ดดังนี้ลงไป

การอ้างถึง string ในไฟล์ strings.xml android



เราจะใช้คำสั่งดังต่อไปนี้ 
        String str = this.getString(R.string.string_name);

android download รูปภาพ จาก URL แบบ AsyncTask



ตัวอย่างเช่น
        สมมติว่าเรามี ImageView อยู่ตัวนึง และต้องการให้โหลดรูปภาพจาก URL ที่กำหนดและนำมาแสดงผลที่ Image View นั้น  เราจะทำดังนี้

ImageView img = (ImageView) findViewById(R.id.MyImage);
new ImageLoader(img).execute("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoGUhz7638DXvaGvfD_W8K_2-eqA2uzCs9z8VYCTwi9-Ex4dvnL264JyRubfoc6N_kYXJZdseH6IeZxnjEzLfIbxJwWVIdKFjj7LH7Xawr_eaJfbtAEDoc1f4XUQknO92Rr6uPKzSytoU/s1600/facebook-group-icon.jpg");

android คุย(ติดต่อ)กับ php ผ่าน json

       อันนี้เป็นการเขียน android ติดต่อกับ web server น่ะครับโดยที่ web server เราจะใช้ php และ เราจะใช้ json เป็นตัวกลางในการแลกเปลี่ยนข้อมูลระหว่างกัน  ดังนี้ครับ

       android ส่ง http request เพื่อร้องขอผลลัพธ์จาก php
โค๊ด HttpRequest ผมเขียนเป็น class ไว้แล้วน่ะครับ ลองดูในเรื่อง android หรือไม่ก็ java ถ้าจำไม่ผิด

        การร้องขอนั้นผมส่งแบบ AsyncTask

การทำ effect click ให้กับปุ่มของ android

        หลายคนคงสงสัยว่าเราจะทำ effect click ให้กับปุ่มของ android ยังไง เพราะเมื่อเราลองเปลี่ยนจาก ปุ่มมาตรฐาน <Button />  ที่มี effect onclick  ให้อยู่แล้ว ไปปรับแต่งเพิ่มเติม  เช่นกันใส่ background ให้กับปุ่มใหม่   effect ที่เคยมีมันก็จะหายไป  ทีนี้ก็นั่งหากันตาเหลือกล่ะครับ  ซึ่งผมเองก็เป็นคนนึงที่เจอกับปัญหานี้  ก็เลยอยากจะเอามาแบ่งปันกันครับ  เผื่อจะได้ไม่ต้องลำบากไปหาทางแก้ให้มันยุ่งยาก  มาเริ่มกันเลยครับ

1. สร้าง ไฟล์ xml ไว้ใน folder layout ตั้งชื่อว่าอะไรก็ได้  ผมขอตั้งชื่อว่า effeck_background_click.xml น่ะครับ


2. แล้วก็พิมพ์โค๊ดลงไปดังนี้ครับ

ทำให้ android ไม่แสดง title bar

        หาก app เรามีหลาย activity  ให้เราทำการกำหนดเองครับว่า  ไม่ต้องการให้ activity ไหนมี title bar  ซึ่งต้องไปกำหนดที่ tag activity ในไฟล์ manifest.xml  ของโปรเจ็คนั้น  ดังรูปด้านล่างนี้เลยครับ  หน้า activity นั้นก็จะไม่มี title bar แสดงขึ้นมา(เฉพาะ activity ที่กำหนดเท่านั้น  ตัวอื่นยังแสดงผลเหมือนเดิมครับ)


วันพุธที่ 7 มีนาคม พ.ศ. 2555

HttpRequest android

import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.client.params.CookiePolicy;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

import android.util.Log;

วันเสาร์ที่ 3 มีนาคม พ.ศ. 2555

check GPS status android

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
provider = locationmanager.getBestProvider(criteria, false);
//true is get all enable provider, false is get all disable provider 

//if GPS enable  
//    locationmanager.isProviderEnabled(provider);
//    it's return true
//else
//    it's return false

วันเสาร์ที่ 25 กุมภาพันธ์ พ.ศ. 2555

แก้ปัญหา save state (หมุนหน้าจอ) android

        คือผมเคยเจอปัญหาว่าเวลาเราป้อน input ใน EditText แล้วลองหมุนหน้าจอ ข้อมูลที่เคยอยู่ใน EditText จะหายไป เพราะว่า android มันจะเริ่ม Activity Lift Cycle ใหม่ คือ create start resume ... ข้อมูลก็เลยหายไปครับ แต่ถ้าเราอยากให้ข้อมูลอยู่เหมือนเดิม ให้ทำดังนี้ครับ        
        
        ให้เพิ่ม android:configChanges="orientation|keyboardHidden" ไว้ในส่วนหัวของ tag activity ที่เราต้องการให้ save state เดิมไว้ อยู่ในไฟล์ Androidmanifest.xml

<activity
    android:name=".ProfileActivity"
    android:configChanges="orientation|keyboardHidden"
    android:label="Profile"
>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

วันจันทร์ที่ 20 กุมภาพันธ์ พ.ศ. 2555

ปรับระดับการซูม google map android ให้อยู่ในระดับที่เหมาะสมตามรัศมีที่กำหนด

private final float DISTANCE_ZOOM_LEVEL0=73728000;
...
...
...
public int zoomScale(float distance) {
    float distance_result = DISTANCE_ZOOM_LEVEL0;
    int i = 0;
    while ((distance_result /= (float) (2)) > distance) { i++; }
    return i>21 ? 21:i;
}
//เช่น mapcontroller.setZoom(zoomScale(100)); //100 meter
//จะได้ระดับการซุม อยู่ที่ level 19  ซึ่งจะพอดีกับหน้าจอ

วันเสาร์ที่ 11 กุมภาพันธ์ พ.ศ. 2555