How to Add a Navigation Drawer in Android

code : https://github.com/thana19/testNavigationDrawer

1. New Project with Navigation Drawer Activity

2. edit content_main.xml – add FrameLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="th.in.thana.testnavigationdrawer.MainActivity"
    tools:showIn="@layout/app_bar_main">

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

(เพิ่มเติม…)

Android : How to convert a image into base64Binary ?

 

imageView.buildDrawingCache();
Bitmap bitmap = profile_image.getDrawingCache();
String encodedImageData = getEncoded64ImageStringFromBitmap(bitmap);

============

public String getEncoded64ImageStringFromBitmap(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 70, stream);
byte[] byteFormat = stream.toByteArray();
// get the base 64 string
String imgString = Base64.encodeToString(byteFormat, Base64.NO_WRAP);

return imgString;
}

แกะกล่อง ASUS Zenfone 2 Laser 5.5

เนื่องจากปัญหาค่าโทรของแม่กับญาติผู้ใหญ่ที่บ้าน ซึ่งเดือนนึงโทรคุยกันหลักพัน ทั้งๆที่บ้านก็มี Hispeed Internet กันทุกบ้าน และโปรมือถือก็สมัคร  3g/4g ให้แม่ใช้แล้ว จึงคิดว่าจะให้ใช้ line คุยกันน่าจะประหยัดและตอบโจทย์ แต่มือถือของน้าเป็น Android รุ่นเก่ามาก จึงจำเป็นต้องเปลี่ยน โจทย์คือ จอใหญ่ ไม่แพง …. ก็เลยตั้งธงไว้ที่จอ 5.5 เอาแบบมียี่ห้อหน่อย ก็จะมี Samsung J7 แต่แพงไปนิด Lenovo จากประสบการณ์คงไม่เอาแล้ว Huawei Y6II ก็น่าสน แต่สุดท้ายก็มาจบที่ Asus Zenfone 2 Laser 5.5 เพราะได้ Cover กับ MicroSD ด้วย จาก Lazada ตอนกดสั่งราคา 4,790 มี code ส่วนลด 7% เหลือ 4,455 บาท แต่พอสั่งเสร็จไป 1 วันมันลดราคาเหลือ 4,490 -*- แต่ลองกดซื้อดูมันใช้ code ลดราคาไม่ได้ ก็ถือว่าซื้อถูกกว่า 35 บาท ก็ยังดีวะ 5555 (อัพเดทวันที่ 28 ก.พ. ลดเหลือ 3,990 อ๊ากกกซซซซซซ )

มาแกะกล่องกันเถอะ (เพิ่มเติม…)

Android : Animate an Activity

 

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Override how this activity is animated into view
// The new activity is pulled in from the left and the current activity is kept still
// This has to be called before onCreate
overridePendingTransition(R.anim.pull_in_from_left, R.anim.hold);

setContentView(R.layout.activity_sliding_drawer);
}

@Override
protected void onPause() {
// Whenever this activity is paused (i.e. looses focus because another activity is started etc)
// Override how this activity is animated out of view
// The new activity is kept still and this activity is pushed out to the left
overridePendingTransition(R.anim.hold, R.anim.push_out_to_left);
super.onPause();
}

 

res.anim.pull_in_from_left.xml

    android:duration="200"
    android:fromXDelta="-100%"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:toXDelta="0%"

credit : http://blog.blundellapps.co.uk/animate-an-activity/

Android : Auto scrolling in ExpandableListView


final int[] lastClickedPosition = {0};
expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
Boolean shouldExpand = (!expListView.isGroupExpanded(groupPosition));

expListView.collapseGroup(lastClickedPosition[0]);

if (shouldExpand){
//generateExpandableList();
expListView.expandGroup(groupPosition);
expListView.setSelectionFromTop(groupPosition, 0);
}
lastClickedPosition[0] = groupPosition;

return true;
}
});

credit : http://stackoverflow.com/questions/12762958/auto-scrolling-in-expandablelistview

Reset to default configuration in android studio

ตอนแรกอัพ android studio 2.2 ไปแล้วก็ไม่มีอะไร error build, debug apk ได้ตามปกติ แต่ตอนทำโปรเจคใหม่ สร้าง mainApplication  ดัน งง + เบลอ สร้างไว้ที่นอก package ตอนที่ไปเรียก android:name ใน androidmanifest ก็เลยไม่อยู่ใต้ package ผมก็นึกว่ามันเป็น bug ของ android studio 2.2 เลยกดโน่น กดนี่ ตู้ม ไปเลยครับ androidManifest ไม่เห็น mainApplicaton ทุกโปรเจคเลย งานเข้าอีกแล้วววว -*-

ก็เลย หา หา หา วิธีแก้ ลบ Android studio ไปก็แล้ว มันดันจำ config เดิมอีก เอาไงดีวะ งานก็เร่ง git clone ไปทำบน windows อีกเครื่องได้ 2-3 วัน มันไม่คุ้นชินเท่า mac ก็เลย หา หา หา จนเขอวิธีจนได้ เห้อ

in mac

rm -Rf ~/Library/Preferences/AndroidStudio*
rm ~/Library/Preferences/com.google.android.studio.plist
rm -Rf ~/Library/Application\ Support/AndroidStudio*
rm -Rf ~/Library/Logs/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*

screen-shot-2559-10-05-at-7-22-21-am

 

credit : http://stackoverflow.com/questions/20582577/how-to-reset-to-default-configuration-in-android-studio