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
Bánh bao - một món ăn tập quán của Việt Nam đã trở thành 1 trong những món ăn phổ biến và được yêu thích không chỉ trong nước mà còn trên quốc tế. Với hương vị mặn mà, đáng chú ý và dễ ăn, bánh bao...
Bí quyết làm thế nào để đại lý bánh bao kỳ lạ thực khách