Hiển thị các bài đăng có nhãn Hướng dẫn lập trình android. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Hướng dẫn lập trình android. Hiển thị tất cả bài đăng

Thứ Tư, 20 tháng 8, 2014

Hiệu ứng lắc trong android



Tạo project Android:

Bước 1: Add folder đặt tên anim nằm trong thư mục res
add thư mục anim trong res
 Tạo 2 file .xml 
+ cycle.xml để cấu hình "số lần lắc "
+ shake.xml cấu hình hiệu ứng lắc

Bước 2: Sử dụng hiệu ứng lắc
Xây dựng màng hình gồm 1 button và 1 EditText
Code trong main.java


Download source code:  Tại đây

Thứ Ba, 19 tháng 8, 2014

Lập trình Android FPT Software Training

Toàn bộ chương trình tranning Android của FPT Software :


Nội dung đào tạo: 
Ngày 1
- Introduce about ADT, SDK, NDK, Android Platform, API
- Application structure, Hello world
- Manifest : permission, application, phiên bản SDK
- Viết ứng dụng ‘Hello world’
- Building and running the activity (Example with button, textview without xml layout)
- Using xml layout
- TextView, Button, ImageView, Checkbox, Toggle, Radio Button
Ngày 2
Bố trí giao diện ứng dụng Android
- Containers, Linear Layout (layout_gravity, gravity, orientation, layout_weight)
- Relative Layout (align, abow, below)
- Table View, ScrollView, Selection View : ListView, GridView, GalleryView, Spinner
Ngày 3
Lập trình widgets: image buttons, progress bar, seekbar…
-      Hứng sự kiện
- Option menu and Context Menu
-      Inflate Xml for Menu
Ngày 4
Nâng cao kỹ thuật bố trí giao diện
- Fancy with Lists : customize adapter
- Using convertView
- Using ViewHolderTabLayout

Ngày 5
Other widgets for showing message : Toast, Dialog, ProgressDialog
- Dealing with thread
- Logic vs UI Thread
- Thread – RunOnUiThread
- AsyncTask (Example : Loading file with asynctask and ProgressBar)
Ngày 6
Intent & Intent Filters
- Intent And Intent Filter (filter for call, view picture, view map, webpage …)
- Activity, Activity for Result. Why and When?
- Activity Life cycle (OnCreate, OnStart, OnResume, OnPause, OnStop, OnDestroy)

Ngày 7
Broadcast- Services
- Bind Service, Application Service, AIDL Service
Lập trình dịch vụ SMS – Telephone
Ngày 8
Lưu trữ trong Android
- Read and Write File (cache, external, internal)
- Preferences
- Make Setting Page with Preferences
- SQLite Database
Ngày 9
Content – Content Provider
- Tạo content provider
- Tạo custom provider
Ngày 10
Viết ứng dụng kết nối dịch vụ web service
- Phương thức REST
- HttpUrlConnection
Phân tích dữ liệu trả về kiểu XML – JSON
Ngày 11
Lập trình đồ họa – hoạt hình
- Vẽ trên Canvas
- Tăng tốc đồ họa
- Lập trình hoạt hình
Ngày 12
Lập trình tương tác đa chạm
- Xử lý tương tác touch, pin, pan, rotate,…
Ngày 13
Lập trình multimedia
- Play audio – video
- JetPlayer
- Chụp ảnh – truy xuất album ảnh
Ngày 14
Tích hợp thông tin địa điểm và bản đồ số
- Location Base Service
- MapView and MapActivity
- Display map & Pin a location in a Map
Ngày 15
Giao tiếp với các cảm biến
- La bàn, cảm biến gia tốc, cảm biến con quay hồi chuyển. Nhận dạng rung lắc thiết bị
- Cảm biến ánh sáng, vị trí…


Slide + Source code demo:
  ▶  Android FPT Software Training :  Tại đây


Thứ Ba, 15 tháng 7, 2014

Nguyên tắc ngón tay cái trong thiết kế ứng dụng cho điện thoại

Nguyên tắc ngón tay cái trong thiết kế ứng dụng cho điện thoại
Điện thoại di động ngày nay đã quá phổ biến và trở thành vật bất li thân của nhiều người. Điện thoại không chỉ đơn thuần là công cụ nghe gọi, liên lạc giữa mọi người với nhau nữa, mà nó được tích hợp nhiều ứng dụng và trở thành vật dụng giải trí và nhiều tính năng hỗ trợ người dùng như bản đồ, đọc viết email, ….
Thiết kế những ứng dụng cho điện thoại di động cũng đòi hỏi nhiều kĩ thuật, tính toán chi tiết để chiếc điện thoại trở nên hữu dụng và sử dụng một cách dễ dàng, thuận tiện nhất. Dựa vào thói quen sử dụng điện thoại và một số đặc điểm bàn tay con người, Infographic dưới đây đưa ra một số gợi ý cho bạn khi thiết kế ứng dụng cho điện thoại di động.
Phần mở rộng: Tìm hiểu thêm về định luật Fitt
Như trong bài infographic trên có đề cập đến định luật Fitt trong thiết kế. Để hiểu rõ thêm mình xin tóm tắt ở đây. Về cơ bản, công thức định luật Fitt được tính theo khoảng cách đến mục tiêu và kích thước của mục tiêu đó. Công thức nhìn có vẻ phức tạp nhưng ý nghĩa thì lại khá đơn giản.
  1. Mục tiêu càng xa thì thời gian để tiếp cận được nó sẽ lâu hơn.
  2. Mục tiêu càng nhỏ thì thời gian để tiếp cận được với nó sẽ lâu hơn.
Khi áp dụng định luật Fitt trong thiết kế giao diện, chúng ta rút ra được 3 kinh nghiệm sau:
Kinh nghiệm 1: Kích thước của các nút bấm hoặc các phần tử tương tác phải đủ lớn để tương xứng với quãng đường cần di chuyển.
Đối với việc độ phân giải của màn hình ngày càng được nâng cao, điều đó đồng nghĩa với việc khoảng cách di chuyển của chuột trên màn hình cũng sẽ dài ra thì cách duy nhất để thỏa mãn định luật Fitt là tăng kích thước của các nút bấm. Tuy nhiên, việc tăng kích thước lại gây ra tác dụng ngược khi số lượng nút bấm quá nhiều dẫn đến chiếm hết cả màn hình. Để giải quyết vấn đề trên, ý tưởng "rubbon" đã được đưa ra. Bằng cách chia nhóm và phân loại, những nút bấm nào người dùng thao tác nhiều nhất sẽ được thiết kế với kích thước lớn, ngược lại những tác vụ người dùng ít dùng tới nút bấm sẽ được làm nhỏ hoặc ẩn đi. Ý tưởng này đã giúp giữ lại các nút bấm vừa thỏa mãn định luật Fitt vừa tiết kiệm không gian hiển thị trên màn hình.
Kinh nghiệm 2: Những tác vụ thông thường nên để gần vị trí con trỏ người dùng.
Ví dụ dễ thấy nhất để mô tả cho việc này là khi bạn click chuột phải vào màn hình desktop hay màn hình trình duyệt web, bạn sẽ thấy một menu hiện ra ngay vị trí con chuột. Tại sao nó lại hiện ngay vị trí đó? Tại sao nó không hiện ở góc trái trên cùng của màn hình? Trả lời được câu hỏi này thì bạn đã hiểu kinh nghiệm 2 là gì.
Kinh nghiệm 3: Những vị trí đặc biệt trên màn hình mà thời gian tiếp cận luôn là ngắn nhất.
Những vị trí đó chính là 4 cạnh và 4 góc của màn hình chúng ta. Nếu có ai đó bất ngờ kêu bạn đưa chuột đến góc màn hình hoặc bất kì cạnh nào thì bạn chỉ đơn giản là "phóng tay" rê chuột đến đó mà không cần phải quan tấm đến đường đi hay vị trí dừng của nó. Lý do rất đơn giản, 4 cạnh hay 4 góc là giới hạn cuối cùng của màn hình, cho dù bạn cứ tiếp tục kéo chuột thì con trỏ chuột trên màn hình vẫn ở đó thôi. Nhưng ngược lại, khi ai đó kêu bạn đưa chuột đến vị trí cách cạnh phải màn hình 5 pixel thì hẳn bạn sẽ ngồi canh từng pixel một khi di chuyển con trỏ chuột đến gần đó. Đó là lý do tại sao nút "Start" từ đời Windows XP (các đời Windows 95, 98, 2000 và ME nút Start cách các cạnh 1 pixel) lại nằm trọn ở góc trái màn hình và thanh "Finder" của Mac OS nằm cạnh trên. Đây đều là những vùng dễ tiếp cận nhất.
Tóm lại, định luật Fitt là một trong những định luật cơ bản và thú vị nhất khi bạn thiết kế trải nghiệm người dùng. Để có được một ứng dụng hoản hảo, bên cạnh thiết kế cho ứng dụng của bạn một bộ cánh đẹp (UI design - user interface) thì việc nghiên cứu trải nghiệm người dùng (UX design - user experience) sẽ tạo ra giá trị sử dụng cho bộ cánh đó. Không ai muốn sản phẩm của mình làm ra mà không người nào sử dụng đươc!
Nguồn: Visual.ly​, Tinh tế.

Thứ Bảy, 5 tháng 7, 2014

Hiển thị HTML cho Android TextView

Hiển thị HTML cho Android TextView
Hiển thị HTML cho Android TextView
DơwnLoad Source Code:



  ▶ Link dơwnload:  Tại đây

Chủ Nhật, 22 tháng 6, 2014

[Huớng dẫn] Tạo Project Androi không cần appcompat_v, Xóa project appcompat_v, Fix lỗi xóa project appcompat_v

Trong phiên bản mới khi nâng cấp, khi tạo 1 project mặc định sẽ có 1 project appcompat_v đuợc tạo kèm. Vấn đề là khi tạo nhiều project android sẽ xuất hiện nhiều project appcompat_v.
Có rất nhiều project appcompat_v ??

Vậy làm sao để xóa bỏ project appcompat_v?
Đầu tiên bạn phải hiểu project appcompat_v chứa gì trong đó, và tại vì sao khi xóa nó thì project ta bị lỗi?
Bài này mình sẽ huớng dẫn sữa lỗi vào sử dụng chung 1 appcompat_v cho cả Workspace .
1. Tìm hiểu về "project appcompat_v"
Các thành phần trong "project appcompat_v": 
- Đơn giản chỉ chứa các thư viện support cho project

Thành phần của appcompat_v 
Mẹo nhỏ khi tạo project bạn nên chon "Empty project" để project chỉ có 1 file .xml và 1 file .Java
Empty project
Vào chọn Proprerties của Project:
Có 2 phần cần lưu ý:
+ "Phiên bản" của app là bản API nào?
+ Library của projecr  -> đây chính là nguyên nhân gây lỗi khi bạn xóa project  appcompat_v
Khi xóa project appcompat_v tuơng ứng của project bạn mới tạo 
-> Xuất hiện lỗi ( thiếu phần support library cho project ) 

Vào chọn Proprerties của Project:
 Lỗi phần  Library của projecr  -> đây chính là nguyên nhân gây lỗi khi bạn xóa project  appcompat_v

 Lưu ý: Phải có ít nhất 1 "project appcompat" để làm thư viện hỗ trợ 
2. Khắc phục lỗi xóa "project appcompat_v"
Buớc 1: Vào chọn Proprerties của Project:
-> Phần  Library của projec -> Chọn Remove

Buớc 2: Vào chọn Proprerties của Project:
-> Phần  Library của projec -> Chọn Add
Chọn 1 "appcompat" đã có sẵn 
-> Lưu ý: Phải có ít nhất 1 "project appcompat" để làm thư viện hỗ trợ 

Chọn Ok và xem kết quả ( Đã fix đuợc lỗi )

Lời kết: Chúng ta chỉ cần để 1 "project appcompat" và sử dụng chung cho các project.
Khi Tạo 1 project mới bạn chịu khó xóa "project appcompat" đựoc tạo mới và làm buớc khắc phục lỗi như trên là ok.
Bài tới mình sẽ huớng dẫn cách quản lý WorkSpace như thế nào cho tốt và hiệu quả ? 

Thứ Năm, 3 tháng 4, 2014

Bài 3 - Ứng dụng đầu tiên ( Nhập vào 2 số và tính tổng)

Hướng dẫn bởi StudingCoding
Hôm nay mình sẽ hướng dẫn các bạn làm 1 app đơn giản android trên Eclipse
Ứng dụng đầu tiên - Nhập vào 2 số tính tổng
---------------
1. Hướng dẫn thực hiện
[QUOTE]
Bước 1: Cài đặt và cấu hình Eclipse ( các bạn có thể xem lại ở bài viết trước)
Bước 2: Khởi động Eclip vào tạo 1 project
Mình sử dụng máy ảo Gennymotion ( bạn có thể vào xem hướng dẫn cài đặt máy ảo này)
Bước 3: Sau khi tạo xong project ta bắt đầu viết ứng dụng
+ Vào layout để thiết kế giao diện cho ứng dụng trước.
Giao diện gồm có 2 cái nhãn để hiện " Nhập a" "nhập b"
và tương ứng 2 o Edittext để nhập dữ liệu
+ 1 button để xuất kết quả

Các control bạn có thể kéo thả vào hoặc vào file code để code
Đã xong phần giao diện ( các bạn nhớ lưu lại nhé)
Kết quả sẽ xuất ra dưới dạng thông báo nhé!
+ Vào file xử lý để code
      - Ánh xạ các control bên giao diện qua file xử lý
    - xử lý
---> đã code xong
Bước 4: chạy ứng dụng
Vừa chạy ứng dụng báo lỗi " nhập dữ liệu"!
Kết quả k tinh được ( do k có dữ liệu)
đã hết lỗi[/QUOTE]
2.  Demo kết quả:
3. Source code
Code giao diện:
[ code]<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nhập a" />
        >
        <EditText
            android:id="@+id/edta"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:ems="10"
            android:inputType="number" >

            <requestFocus />
        </EditText>
    </TableRow>

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nhập b" />
        >
        <EditText
        android:id="@+id/edtb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|top"
        android:ems="10"
        android:inputType="number" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btnTinh"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:text="Tính" />

    </TableRow>

</TableLayout>[ /code]
Xử lý:
[ code]<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nhập a" />
        >
        <EditText
            android:id="@+id/edta"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|top"
            android:ems="10"
            android:inputType="number" >

            <requestFocus />
        </EditText>
    </TableRow>

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nhập b" />
        >
        <EditText
        android:id="@+id/edtb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|top"
        android:ems="10"
        android:inputType="number" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btnTinh"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:text="Tính" />

    </TableRow>

</TableLayout>[ /code]
Lưu ý: Bài viết bản quyền của StudingCoding