พอดี ผมเห็นมีแต่คนมาถามเรื่องนี้อ่ะครับ เรื่องโปรเจ็คจบผม 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
แสดงบทความที่มีป้ายกำกับ android แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ android แสดงบทความทั้งหมด
วันพฤหัสบดีที่ 6 ธันวาคม พ.ศ. 2555
วันจันทร์ที่ 2 เมษายน พ.ศ. 2555
การ clear focus EditText android
โดยปกติแล้ว ถ้าหน้า Activity ของเรา มี EditText อยู่ EditText นั้นจะถูก Focus โดยอัตโนมัติเวลาที่เราเข้าไปยังหน้านั้น วิธีแก้ที่ไม่ให้มันโฟกัสอัตโนมัติ ทำได้ดังนี้ครับ
ปัญหา
ปัญหา
เห็นอะไรมั้ยครับว่ามัน Focus เองอัตโนมัติ ทั้งๆที่เราไม่ได้ต้องการเลย
การทำ dynamic layout android
วันนี้ผมจะมาแนะนำการทำ dynamic layout ใน android น่ะครับ ไม่ทราบว่าคนอื่นๆ จะเรียกมันว่ายังไง ถ้าผมเรียกผิดไปก็ขออภัยด้วยครับ
การทำ dynamic layout ในที่นี้ก็คือ การสร้าง pattern layout ขึ้นมาไฟล์เดียว(.xml ไฟล์เดียว) จากนั้นก็เรียกใช้ได้ตลอด ซึ่งมันก็จะมีรูปแบบเหมือนๆกัน แต่เนื้อหาข้างในต่างกัน ดังรูปครับ
เรามาดูวิธีการกันเลยดีกว่าครับ
การทำ dynamic layout ในที่นี้ก็คือ การสร้าง pattern layout ขึ้นมาไฟล์เดียว(.xml ไฟล์เดียว) จากนั้นก็เรียกใช้ได้ตลอด ซึ่งมันก็จะมีรูปแบบเหมือนๆกัน แต่เนื้อหาข้างในต่างกัน ดังรูปครับ
วันเสาร์ที่ 24 มีนาคม พ.ศ. 2555
การทำ fadein animation android
1. สร้างโฟลเดอร์ชื่อ anim ไว้ภายใต้ res ดังนี้
2. สร้าง file xml สำหรับทำ fadein ไว้ใน anim จะตั้งชื่อว่าอะไรก็ได้ แล้วเขียนโค๊ดดังนี้ลงไป
2. สร้าง file xml สำหรับทำ fadein ไว้ใน anim จะตั้งชื่อว่าอะไรก็ได้ แล้วเขียนโค๊ดดังนี้ลงไป
การอ้างถึง string ในไฟล์ strings.xml android
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
android ส่ง http request เพื่อร้องขอผลลัพธ์จาก php
โค๊ด HttpRequest ผมเขียนเป็น class ไว้แล้วน่ะครับ ลองดูในเรื่อง android หรือไม่ก็ java ถ้าจำไม่ผิด
การร้องขอนั้นผมส่งแบบ AsyncTask
การทำ effect click ให้กับปุ่มของ android
หลายคนคงสงสัยว่าเราจะทำ effect click ให้กับปุ่มของ android ยังไง เพราะเมื่อเราลองเปลี่ยนจาก ปุ่มมาตรฐาน <Button /> ที่มี effect onclick ให้อยู่แล้ว ไปปรับแต่งเพิ่มเติม เช่นกันใส่ background ให้กับปุ่มใหม่ effect ที่เคยมีมันก็จะหายไป ทีนี้ก็นั่งหากันตาเหลือกล่ะครับ ซึ่งผมเองก็เป็นคนนึงที่เจอกับปัญหานี้ ก็เลยอยากจะเอามาแบ่งปันกันครับ เผื่อจะได้ไม่ต้องลำบากไปหาทางแก้ให้มันยุ่งยาก มาเริ่มกันเลยครับ
2. แล้วก็พิมพ์โค๊ดลงไปดังนี้ครับ
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;
วันอังคารที่ 6 มีนาคม พ.ศ. 2555
วันเสาร์ที่ 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
ให้เพิ่ม 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
Generate API key google map android (linux ubuntu)
ไปที่ http://code.google.com/android/maps-api-signup.html
Copy คำสัั่ง $ keytool -list -keystore ~/.android/debug.keystore ไปวางใน terminal แล้ว enter
สมัครสมาชิก:
บทความ (Atom)
















