Blog นี้ผมเขียนไว้อ่านเองกันลืมนะ อาจมีภาษา หรือ เนื้อหา ที่ไม่รู้เรื่อง sorry มามะ ที่นี้
วันศุกร์ที่ 29 สิงหาคม พ.ศ. 2557
การเปลี่ยน theme app
1. เพิ่มไปใน <resource>
<style name="ชื่อสไตที่เมิงตั้งใหม่" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<resource>
2. ไปที่ androidmanifest.xml
หาแล้วแก้แค่เนี่ย
android:theme="@style/ชื่อสไตที่เมิงตั้งใหม่"
จบละฝัดด เบย
การใช้งาน ViewPagerIndicator
เปลี่ยนเป็น สไตต่างๆเช่น
import com.viewpagerindicator.PageIndicator;
import com.viewpagerindicator.TitlePageIndicator;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Menu;
public class MainmenuActivity extends FragmentActivity {
FragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
int Number = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout."ชื่อ layout ของเรา");
mAdapter = new FragmentAdapter(getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
Title
//mIndicator = (TitlePageIndicator)findViewById(R.id.indicator);
Tab
//mIndicator = (TabPageIndicator)findViewById(R.id.indicator);เลือกเอาซักอย่าง
mIndicator.setViewPager(mPager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu. "ดูชื่อใน res->menu แล้วก็อบมาใส" , menu);
return true;
}
}
หน้า xml ของ MainActivity
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
//Title <com.viewpagerindicator.TitlePageIndicator//Tab <com.viewpagerindicator.TabPageIndicator เลือกเอา
android:id="@+id/indicator"
android:padding="10dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="#000000"
android:textColor="#2FB3E3"
/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>
import com.viewpagerindicator.IconPagerAdapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class FragmentAdapter extends FragmentPagerAdapter implements IconPagerAdapter{
public FragmentAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public int getIconResId(int index) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Fragment getItem(int position)
{
// TODO Auto-generated method stub
Fragment fragment = new BitFragment();
switch(position){
case 0:
fragment = new BitFragment();
break;
case 1:
fragment = new ByteFragment();
break;
case 2:
fragment = new KiloByteFragment();
break;
case 3:
fragment = new MegaByteFragment();
break;
}
return fragment;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
มีกี่ tab เมิงกะใส่ตรงนี้นะ
return 4;3.สร้าง Fragment (Activity ) class+xml หน้าต่างๆที่จะเรียกใช้
}
@Override
public CharSequence getPageTitle(int position){
String title = "";
switch(position){
case 0:
title = "Bit";
break;
case 1:
title = "Byte";
break;
case 2:
title = "KiloByte";
break;
case 3:
title = "MegaByte";
break;
}
return title;
}
}
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
//Calendar
CaldroidFragment caldroidFragment;
caldroidFragment = new CaldroidFragment();
Bundle args = new Bundle();
Calendar cal = Calendar.getInstance();
args.putInt(CaldroidFragment.MONTH, cal.get(Calendar.MONTH) + 1);
args.putInt(CaldroidFragment.YEAR, cal.get(Calendar.YEAR));
caldroidFragment.setArguments(args);
android.support.v4.app.FragmentTransaction t = getFragmentManager().beginTransaction();
t.replace(R.id.calendar1, caldroidFragment);
t.commit();
Button btnMultipleClear = (Button) view.findViewById(R.id.btnMultipleClear);
btnMultipleClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Clear", Toast.LENGTH_SHORT).show();
}
});
}
}
วันอาทิตย์ที่ 24 สิงหาคม พ.ศ. 2557
Android Studio Add ViewPagerIndicator Library with Gradle
(กว่ากุจาหาเจอสาดเอ้ยยยย!!!)
1. เข้า build.gradle ของโปรเจค แล้ว ก็ใส่ตามรูปด้านขวาล่าง ***ต้องใส่ข้างบน jcenter()
maven
{
url "http://dl.bintray.com/populov/maven"
}
jcenter()
2. เข้า build.gradle ของ module แล้วก็ใส่ตามรูปด้านขวาล่าง
compile 'com.viewpagerindicator:library:2.4.1@aar'
แค่นี้ก็ใช้ได้แล้ววุ้ยยยยยย
วันเสาร์ที่ 16 สิงหาคม พ.ศ. 2557
Basic Android Studio
วันพฤหัสบดีที่ 14 สิงหาคม พ.ศ. 2557
Codeigniter PHP framework ตอนที่ 1
Codeigniter
- หา libraries ให้่เจออยู่บนๆเลย แล้วก็ใช้ไปตามภาพ ทำให้เราไม่ต้องเสียเวลาเขียนตอนในงาน เช่น Database และ Session ใครอย่างเพิ่มอย่างอื่นก็จัดไปนะ
- model ส่วนสุดท้ายเลย ไว้ใช้ ออโต้โหลด model ที่เราเขียนไว้จะได้ใช้ได้เลย ใส่แต่ชื่อนะไม่ต้อง .php
ไปถูบ้านละครัช เด๋วมาต่อ -*-
Breakpoints
Breakpoints
วันอังคารที่ 12 สิงหาคม พ.ศ. 2557
Responsive Web Design
เป็นการออกแบบเพื่อให้เว็บไซต์แสดงผลได้ใน อุปกรณ์ที่ต่างกัน โดยใช้ website เดิม โดยใช้เทคนิค 3 อย่างด้วยกัน Fluid Grid, Flexible Images,CSS3 Media Queries Fluid Grid ซึ่งก็คือการออกแบบ Grid ให้เป็นแบบ Relative ซึ่งก็คือการที่ไม่ได้กำหนดขนาดของ Grid แบบตายตัว แต่จะกำหนดให้สัมพันธ์กับสิ่งอื่นๆ เช่น กำหนดความกว้างแบบเป็น % หรือการใช้ font-size หน่วยเป็น em เป็นต้น Flexible Images หรือการกำหนดขนาดของ Images ต่างๆ ให้มีความสัมพันธ์กับขนาดของหน้าจอแสดงผล หากรูปต้นฉบับมีขนาดใหญ่มาก เวลาแสดงในมือถือที่มีจอขนาดเล็ก ก็ควรลดขนาดลงมา เพื่อให้แสดงผลได้อย่างสวยงาม CSS3 Media Queries ซึ่งจะช่วยให้เราสามารถกำหนด style sheets สำหรับ Devices ต่างๆ ได้ โดยส่วนใหญ่ เราจะเขียน style sheets พื้นฐานเอาไว้ ซึ่งกลุ่มนี้ จะไม่ขึ้นอยู่กับ Devices ใดๆ หลังจากนั้นให้เราเขียน style sheets สำหรับ Devices ที่มีขนาดหน้าจอที่เล็กสุด เพิ่มขึ้นไปเรื่อยๆ จนถึงขนาดใหญ่สุด ซึ่งการเขียนแบบนี้ จะช่วยลดความซ้ำซ้อนของโค้ด และยังทำให้การแก้โค้ดในภายหลังทำได้ง่ายอีกด้วย
CSS3 Media Queries
เป็นการเพิ่มข้อกำหนดให้กับ Media Types เช่น screen and (min-width:1024px) หน้าจอที่มีความกว้างอย่างน้อย 1024px ช่วยจำแนก device ต่างๆ ได้ดียิ่งขึ้น หากอยากทำให้ Web Browser ที่ไม่รองรับ ให้ใช้ “HTML5 Cross Browser Polyfills”
วันศุกร์ที่ 8 สิงหาคม พ.ศ. 2557
เริ่มใช้ Bitbucket
1. สมัครใช้งาน bitbucket
- ไปที่ https://bitbucket.org
- เมื่อสมัครเสร็จไปที่ปุ่ม create จากนั้นตั้งชื่อ repository
2.ลง Git
- ไปที่เว็บนี้ กดโลด http://git-scm.com/ แล้วกดปุ่ม Download
- Next ยาวเลยไม่ต้องถาม จนถึงหน้านี้ให้เลือก use git from the windows command prompt ดังรูป
- จากนั้นเปิด git bash เพื่อสร้าง ssh key ในการอัพโหลดไฟล์ต่างๆไปที่ bitbucket
- พิม cd ~/.ssh เพื่อดูว่าเราสร้าง ssh key ไว้รึยัง ถ้ายังมันจะขึ้น No such file or directory
- พิม ssh-keygen -t rsa -C"ใส่อีเมลที่ใช้สมัคร bitbucket" เพื่อสร้าง ssh key จากนั้นมันขึ้นไรก็ enter ไปเลยไม่ต้องใส่
- พิม clip <~/.ssh/id_rsa.pub เพื่อ copy ssh key
- ไปที่ repository ที่สร้างไว้ที่ https://bitbucket.org
- เลือกคลิกรูป avatar ขวาบน แล้วเลือกเมนู manage account ดังรูป
3. ลง Sourcetree
- โหลดจาก http://www.sourcetreeapp.com/
- Next ยาวเลย จนถึง SSH Client Configuration ก็ให้เลือกเป็น OpenSSH
- ละก็ใส่ user pass ของ bitbucket จากนั้นระบบมันจะลองเชื่อมต่อให้
- จากนั้นก็กด finish
- เปิดโปรแกรม Sourcetree
- ไปที่ repository ที่สร้างไว้ที่ https://bitbucket.org เลือก Clone in sorce tree ดังรูป
วันพฤหัสบดีที่ 7 สิงหาคม พ.ศ. 2557
Git !!! คืออัลไร
git เป็น Version controll ละเวอชั่นคอนโทนห่าไรเนี่ยคือไร
แม่มกะคือตัวที่เราเอาไว้ใช้ดูการเปลี่ยนแปลง Code ของเรา เช่น เราแก้บรรทัดนี้เมื่อไหร่ หรือไอที่แก้ไว้แม่งไม่เวิกก็ชั่งแม่ม เรียกกลับมาใช้ Code เวอชั่นเดิมก็ได้กุไม่ง้อไรเงี้ย คือเราทำไรไว้กับ code เชี่ยนี่เสือกเก็บไว้หมด
Code ต่างๆที่เราเก็บไว้บน git เนี่ยเค้าเรียกว่า Repository เอาไว้ใช้เป็นพาทให้ระบบมันลิ้งไปหา code ของเราถูกอัน ง่ายๆกะที่อยู่ไฟของเราอ่ะแหละเชี่ยยุ่งยากขิง
ข้อดีรวมๆนะ
- ฟรีไง
- backup code ของเราให้
- รวม code ที่แก้ๆไว้จากเพื่อนแต่ละคนเข้าด้วยกัน Merge ซึ่งถ้ามันไม่แน่ใจแม่มก็จะให้เราตัดสินใจเอง
- แบ่ง code เป็น ver ไป จะเอาไปใช้ตอนไหนก็ได้
- บอกว่า code ส่วนนี้ใครแก้มั่ง บอกว่าใครทำ bug อ่ะแหละ
- ไม่ต้องต่อเนตก็ใช้ได้ เยสแม่ม เจ๋งสาด แต่ตอนอัพขึ้นเว็บต้องใช้นะจ้ะ
Git hosting ผู้ใช้บริการ git เน้น ฟรีนะ
1. อันดับหนึ่งเลย GitHub เอาไว้แชโคดให้โลกตะลึงง เน้นที่ Public Repository ใช้ได้ไม่จำกัด แต่แก้ไขไม่ได้ สนใจก็จัดไป http://github.com
2. Bitbucket เน้น Private Repository ใช้ได้ไม่จำกัด แต่คนที่จะเข้าไปดู แก้ไขนั้น ไม่เกิน 5 คน น่าจะเหมาะกับทีมพัฒนา code ทีมเล็กๆ กุจะใช้นี้แหละ ใครว้อนกดโลด https://bitbucket.org