Android開發(fā)實現(xiàn)Gallery畫廊效果的方法
本文實例講述了Android開發(fā)實現(xiàn)Gallery畫廊效果的方法。分享給大家供大家參考,具體如下:
畫廊 使用Gallery表示,按水平方向顯示內(nèi)容,并且可以用手指直接拖動圖片移動,一般用來瀏覽圖片,被選中的選項位于中間,可以響應(yīng)事件顯示信息。
xml布局文件基本語法
<Gallery 屬性列表 />
Gallery支持4中xml屬性
|
屬性名稱
|
描述
|
|||||||||||||||||||||||||||||||||||||||
|
android:animationDuration
|
設(shè)置布局變化時動畫的轉(zhuǎn)換所需的時間(毫秒級)。僅在動畫開始時計時。該值必須是整數(shù),比如:100。
|
|||||||||||||||||||||||||||||||||||||||
|
android:gravity
|
指定在對象的X和Y軸上如何放置內(nèi)容。指定一下常量中的一個或多個(使用 “|”分割)
|
|||||||||||||||||||||||||||||||||||||||
|
android:spacing
|
(譯者注:設(shè)置圖片之間的間距)
|
|||||||||||||||||||||||||||||||||||||||
|
android:unselectedAlpha
|
設(shè)置未選中的條目的透明度(Alpha)。該值必須是float類型,比如:“1.2”
|
效果的具體實現(xiàn)過程
layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Gallery
android:id="@+id/gallery"
android:spacing="5px" //設(shè)置列表項之間的間距為5像素
android:unselectedAlpha="0.5" //設(shè)置未被選中的列表項的透明度
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Activity:
package xqx;
import com.example.xqx_lianxi.R;
import android.app.Activity;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
public class MainGallery extends Activity{
//設(shè)置畫廊圖片
private int[] imageId = new int[] { R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main_gallery);
//獲取Gallery組件
Gallery gallery = (Gallery) findViewById(R.id.gallery);
BaseAdapter adapter = new BaseAdapter() {
//獲取當(dāng)前選項ID
@Override
public long getItemId(int position) {
return position;
}
//獲取當(dāng)前選項值
@Override
public Object getItem(int position) {
return position;
}
//獲取數(shù)量
@Override
public int getCount() {
return imageId.length;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageview; //聲明ImageView的對象
if (convertView == null) {
imageview = new ImageView(MainGallery.this); //創(chuàng)建ImageView的對象
imageview.setScaleType(ImageView.ScaleType.FIT_XY); //設(shè)置縮放方式
imageview.setLayoutParams(new Gallery.LayoutParams(500, 400));
TypedArray typedArray = obtainStyledAttributes(R.styleable.Gallery);
imageview.setBackgroundResource(typedArray.getResourceId(
R.styleable.Gallery_android_galleryItemBackground,
0));
imageview.setPadding(5, 0, 5, 0); //設(shè)置imageview的內(nèi)邊距
}
else
{
imageview = (ImageView) convertView;
}
imageview.setImageResource(imageId[position]);
return imageview;
}
};
//將適配器與Gallery關(guān)聯(lián)
gallery.setAdapter(adapter);
gallery.setSelection(imageId.length / 2); //默認(rèn)顯示的圖片的id
//畫廊圖片的點擊事件
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainGallery.this,
"第" + String.valueOf(position+1) + "張圖片被選中",
Toast.LENGTH_SHORT).show();
}
});
}
}
最后在res/values/string.xml中添加一段代碼 ,這里對應(yīng)activity中的51行
<declare-styleable name="Gallery">
<attr name="android:galleryItemBackground" />
</declare-styleable>
這樣便完成了一個畫廊的效果
效果圖:

可以看到 一共有6張圖片 默認(rèn)顯示第4張
gallery.setSelection(imageId.length / 2); //默認(rèn)顯示的圖片的id
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android實現(xiàn)漂亮的Gallery畫廊
- Android中Gallery和ImageSwitcher的使用實例
- Android TV開發(fā):實現(xiàn)3D仿Gallery效果的實例代碼
- Android自定義Gallery控件實現(xiàn)3D圖片瀏覽器
- Android開發(fā)中畫廊視圖Gallery的兩種使用方法分析
- Android高級組件Gallery畫廊視圖使用方法詳解
- Android UI控件之Gallery實現(xiàn)拖動式圖片瀏覽效果
- Android 使用自定義RecyclerView控件實現(xiàn)Gallery效果
- Android使用gallery和imageSwitch制作可左右循環(huán)滑動的圖片瀏覽器
- Android之Gallery使用例子
- Android使用Gallery實現(xiàn)照片拖動的特效
相關(guān)文章
Android自定義View實現(xiàn)價格區(qū)間選擇控件
這篇文章主要為大家詳細(xì)介紹了Android如何利用自定義View實現(xiàn)價格區(qū)間選擇控件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-11-11
Android dip,px,pt,sp 的區(qū)別詳解
本篇文章是對Android中dip,px,pt,sp的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Android ProgressBar實現(xiàn)進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了Android ProgressBar實現(xiàn)進(jìn)度條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
Flutter交互并使用小工具管理其狀態(tài)widget的state詳解
這篇文章主要為大家介紹了Flutter交互并使用小工具管理其狀態(tài)widget的state詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
EditText限制輸入數(shù)字,精確到小數(shù)點后1位的設(shè)置方法
下面小編就為大家?guī)硪黄狤ditText限制輸入數(shù)字,精確到小數(shù)點后1位的設(shè)置方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04

