dưới đây long sẽ hướng dẫn các bạn làm 1 silde trình diễn các hình ảnh của bạn bằng cách sử dụng đối tượng gallery trong lập trình android.
[img]data/attachments/14/14134-4fb9a3277f378924f1ac76d8f8376952.jpg[/img]
1) source code demo:
click vào đây để download source code demo
2) giới thiệu đối tượng gallery:
- là một đối tượng dùng để quản lý hình ảnh của bạn. nó sẽ giúp cho bạn đang ở vị trí nào trong 1 đống ảnh của bạn.
- nó còn được android xử lý tốt và như video bên dưới, bạn sẽ cảm thấy chúng rất mượt khi bạn kéo thả, chọn ...
3) hình ảnh demo:
[img]data/attachments/14/14133-7316526b4eebe64476297f3e425487da.jpg[/img]
4) chú ý:
- hình ảnh sử dụng trong demo có cùng tên và chỉ khác nhau ở vị trí cuối, giúp ta có thể dễ dàng quản lý chúng trong vòng lặp for.
- ngoài ra các hình ảnh sử dụng các bạn nên để kích thước chúng bằng nhau nhé tránh gây bể font.
- ứng dụng này chỉ mang tính chất demo chạy được. trong trường hợp các bạn thêm quá nhiều ảnh, dung lượng quá lớn thì android buộc ứng dụng phải dừng lại. và trong trường hợp này các bạn phải xử lý code quản lý dung lượng tốt hơn thì sẽ rất ok!
[img]data/attachments/14/14135-5013f0a83ffb55b5c31dce4713386f79.jpg[/img]
5) hướng dẫn code:
- mainactivity.java
Mã nguồn PHP:
[color=#000000]
package android.vn; import java.util.arraylist;import java.util.list; import android.app.activity;import android.graphics.bitmap;import android.graphics.drawable.bitmapdrawable;import android.graphics.drawable.drawable;import android.os.bundle;import android.view.view;import android.view.view.onclicklistener;import android.widget.adapterview;import android.widget.adapterview.onitemselectedlistener;import android.widget.gallery;import android.widget.imageview;import android.widget.imageview.scaletype; public class mainactivity extends activity { private imageview selectedimageview; private imageview leftarrowimageview; private imageview rightarrowimageview; private gallery gallery; private int selectedimageposition = 0; private list<drawable> drawables; private imageadaptergallery galimageadapter; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); //lấy danh sách hình ảnh getdrawableslist(); //thực hiện thiết lập giao diện setupui(); } //thiết lập các biến sử dụng từ giao diện xml private void setupui() { selectedimageview = (imageview) findviewbyid(r.id.selected_imageview); leftarrowimageview = (imageview) findviewbyid(r.id.left_arrow_imageview); rightarrowimageview = (imageview) findviewbyid(r.id.right_arrow_imageview); gallery = (gallery) findviewbyid(r.id.gallery); //tạo 1 lắng nge từ nút bên trái leftarrowimageview.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { if (selectedimageposition > 0) { --selectedimageposition; } gallery.setselection(selectedimageposition, false); } }); //tạo 1 lắng nge từ nút bên phải rightarrowimageview.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { if (selectedimageposition < drawables.size() - 1) { ++selectedimageposition; } gallery.setselection(selectedimageposition, false); } }); //tạo lắng nge từ đối tượng gallery gallery.setonitemselectedlistener(new onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int pos, long id) { selectedimageposition = pos; //kiểm tra vị trí ảnh trong danh sách hình ảnh để thiết lập 2 nút mũi tên như mong muốn if (selectedimageposition > 0 && selectedimageposition < drawables.size() - 1) { leftarrowimageview.setimagedrawable(getresources().getdrawable(r.drawable.arrow_left_enabled)); rightarrowimageview.setimagedrawable(getresources().getdrawable(r.drawable.arrow_right_enabled)); } else if (selectedimageposition == 0) { leftarrowimageview.setimagedrawable(getresources().getdrawable(r.drawable.arrow_left_disabled)); } else if (selectedimageposition == drawables.size() - 1) { rightarrowimageview.setimagedrawable(getresources().getdrawable(r.drawable.arrow_right_disabled)); } //thực hiện cập nhật lại viền changeborderforselectedimage(selectedimageposition); //cập nhật hình ảnh đc lựa chọn setselectedimage(selectedimageposition); } @override public void onnothingselected(adapterview<?> arg0) { } }); //tạo đối tượng imageadaptergallery galimageadapter = new imageadaptergallery(this, drawables); //thiết lập nguồn và đổ vào gallery gallery.setadapter(galimageadapter); if (drawables.size() > 0) { gallery.setselection(selectedimageposition, false); } if (drawables.size() == 1) { rightarrowimageview.setimagedrawable(getresources().getdrawable(r.drawable.arrow_right_disabled)); } } //thực hiện thay đổi viền cho hình ảnh được lựa chọn private void changeborderforselectedimage(int selecteditempos) { int count = gallery.getchildcount(); for (int i = 0; i < count; i++) { imageview imageview = (imageview) gallery.getchildat(i); imageview.setbackgrounddrawable(getresources().getdrawable(r.drawable.image_border)); imageview.setpadding(3, 3, 3, 3); } imageview imageview = (imageview) gallery.getselectedview(); imageview.setbackgrounddrawable(getresources().getdrawable(r.drawable.selected_image_border)); imageview.setpadding(3, 3, 3, 3); } //lấy danh sách các hình ảnh đưa vào mảng để quản lý private void getdrawableslist() { drawables = new arraylist<drawable>(); drawables.add(getresources().getdrawable(r.drawable.natureimage1)); drawables.add(getresources().getdrawable(r.drawable.natureimage2)); drawables.add(getresources().getdrawable(r.drawable.natureimage3)); drawables.add(getresources().getdrawable(r.drawable.natureimage4)); drawables.add(getresources().getdrawable(r.drawable.natureimage5)); drawables.add(getresources().getdrawable(r.drawable.natureimage6)); drawables.add(getresources().getdrawable(r.drawable.natureimage7)); drawables.add(getresources().getdrawable(r.drawable.natureimage8)); drawables.add(getresources().getdrawable(r.drawable.natureimage9)); drawables.add(getresources().getdrawable(r.drawable.natureimage10)); drawables.add(getresources().getdrawable(r.drawable.natureimage11)); drawables.add(getresources().getdrawable(r.drawable.natureimage12)); drawables.add(getresources().getdrawable(r.drawable.natureimage13)); drawables.add(getresources().getdrawable(r.drawable.natureimage14)); drawables.add(getresources().getdrawable(r.drawable.natureimage15)); } //thiết lập hình ảnh lựa chọn hiển thị trên imageview chính private void setselectedimage(int selectedimageposition) { bitmapdrawable bd = (bitmapdrawable) drawables.get(selectedimageposition); bitmap b = bitmap.createscaledbitmap(bd.getbitmap(), (int) (bd.getintrinsicheight() * 0.9), (int) (bd.getintrinsicwidth() * 0.7), false); selectedimageview.setimagebitmap(b); selectedimageview.setscaletype(scaletype.fit_xy); }}[/color]
- res/drawable/image_border.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <gradient android:angle="90" android:centercolor="#777777" android:endcolor="#777777" android:startcolor="#777777" /> </shape> </item> <item android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp"> <shape android:shape="rectangle" > <solid android:color="#777777" /> </shape> </item> </layer-list>
- res/drawable/selected_image_border.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <gradient android:angle="90" android:centercolor="#000" android:endcolor="#000" android:startcolor="#000" /> </shape> </item> <item android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp"> <shape android:shape="rectangle" > <solid android:color="#000" /> </shape> </item> </layer-list>
- res/values/strings.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<resources> <string name="app_name">demoandroid</string> <string name="parsed_data">http://android.vn
hướng dẫn bởi thanhlong90.it</string> <string name="action_settings">settings</string> <string name="hello_world">hello world!</string> </resources>
- activity_main.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<[/color][color=#0000bb]linearlayout xmlns[/color][color=#007700]:[/color][color=#0000bb]android[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/apk/res/android" [/color][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]tools[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/tools" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]background[/color][color=#007700]=[/color][color=#dd0000]"@android:color/white" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]orientation[/color][color=#007700]=[/color][color=#dd0000]"vertical" [/color][color=#007700]> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"5dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]gravity[/color][color=#007700]=[/color][color=#dd0000]"center" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/parsed_data" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textappearance[/color][color=#007700]=[/color][color=#dd0000]"?android:attr/textappearancemedium" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textstyle[/color][color=#007700]=[/color][color=#dd0000]"bold" [/color][color=#007700]/> <[/color][color=#0000bb]imageview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/selected_imageview" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"230dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_marginleft[/color][color=#007700]=[/color][color=#dd0000]"30dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_marginright[/color][color=#007700]=[/color][color=#dd0000]"30dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"10dip" [/color][color=#007700]/> <[/color][color=#0000bb]relativelayout android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/gallery_relative_layout" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"150dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]orientation[/color][color=#007700]=[/color][color=#dd0000]"horizontal" [/color][color=#007700]> <[/color][color=#0000bb]imageview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/left_arrow_imageview" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_centervertical[/color][color=#007700]=[/color][color=#dd0000]"true" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_marginleft[/color][color=#007700]=[/color][color=#dd0000]"15dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]src[/color][color=#007700]=[/color][color=#dd0000]"@drawable/arrow_left_disabled" [/color][color=#007700]/> <[/color][color=#0000bb]gallery android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/gallery" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"0dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"150dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_marginleft[/color][color=#007700]=[/color][color=#dd0000]"20dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_marginright[/color][color=#007700]=[/color][color=#dd0000]"20dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_toleftof[/color][color=#007700]=[/color][color=#dd0000]"@+id/right_arrow_imageview" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_torightof[/color][color=#007700]=[/color][color=#dd0000]"@+id/left_arrow_imageview" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]spacing[/color][color=#007700]=[/color][color=#dd0000]"20dip" [/color][color=#007700]/> <[/color][color=#0000bb]imageview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/right_arrow_imageview" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_alignparentright[/color][color=#007700]=[/color][color=#dd0000]"true" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_centervertical[/color][color=#007700]=[/color][color=#dd0000]"true" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_marginright[/color][color=#007700]=[/color][color=#dd0000]"15dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]src[/color][color=#007700]=[/color][color=#dd0000]"@drawable/arrow_right_enabled" [/color][color=#007700]/> </[/color][color=#0000bb]relativelayout[/color][color=#007700]> </[/color][color=#0000bb]linearlayout[/color][color=#007700]>[/color]
6) video kết quả demo:
bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: android.vn
pass giải nén: http://android.vn
support: thanhlong90.it@gmail.com
Đấng mày râu ai cũng muốn sở hữu “cậu nhỏ” cỡ khủng để khẳng định bản lĩnh, sức mạnh trong chuyện phòng the. Tuy nhiên cách tăng kích tấc dương vật thiên nhiên, hiệu quả thì không phải ai cũng biết....
Liệu pháp tăng kích thước "cậu nhỏ" không dùng thuốc hiệu quả nhất