转: http://www.maxiaoguo.com/shipin/329.html
思路: 使用gallery中的items的view
其中的1是通过gallery的position拿到的 要不不准
spGallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
pageSize.setText(position+1+"/"+spGallery.getCount());
spGallery.setSelection(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
parent.getChildCount();
}
});
还有一个最最重要的问题是 当使用gallery的时候 item中的 btn的selector 不好控制
当前的页面的btn没事,其他的btn一直处在按下的状态, 当滑动到当前的页面的时候btn会从btn 按下的状态转换到 nor的状态,体验效果非常不好
终极解决问题:
重写gallery的items中的linearlayout
<?xml version="1.0" encoding="utf-8"?>
<com.m4399.gamecenter.widget.CustomGalleryLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="blocksDescendants"
>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="285dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/sd_special_card_bg"
android:fadingEdge="none"
android:layout_marginLeft="15px"
android:layout_marginRight="9dp"
>
<!-- base info -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<!-- 左边图片 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/sp_iv"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_default_game_detail"
android:visibility="visible"
android:layout_margin="11dp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1"
>
<!-- name and players -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="13dp"
android:paddingRight="7dp"
>
<TextView
android:layout_width="130dp"
android:layout_height="wrap_content"
android:text="anger pigs"
android:id="@+id/sp_name"
android:singleLine="true"
android:textColor="@android:color/black"
android:textSize="14sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:id="@+id/sp_players"
android:textColor="@color/black"
android:layout_marginTop="0dp"
android:textSize="11sp"
/>
</LinearLayout>
<!-- devname version and likes -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<!-- devname and version -->
<LinearLayout
android:layout_width="80dp"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/sp_devname"
android:layout_width="134dp"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:layout_marginTop="0dp"
android:singleLine="true"
android:text="wentao ma"
android:textColor="@color/light_gray_five"
android:textSize="11sp" />
<TextView
android:id="@+id/sp_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="V;123"
android:textColor="@color/light_gray_five"
android:textSize="11sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_marginRight="0dp"
android:orientation="horizontal" >
<Button
android:id="@+id/sp_like_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="sd"
android:gravity="center_vertical"
android:paddingRight="4dp"
android:textSize="12sp"
android:duplicateParentState="false"
android:layout_marginTop="5dp"
android:background="@drawable/ic_gi_like_nor"
/>
<Button
android:id="@+id/sp_nlike_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="12"
android:layout_marginLeft="10dp"
android:paddingRight="7dp"
android:textSize="12sp"
android:layout_marginRight="8dp"
android:duplicateParentState="false"
android:layout_marginTop="5dp"
android:background="@drawable/ic_gi_like_nor"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<!--base info end -->
</LinearLayout>
<!-- poster -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal"
>
<ImageView
android:layout_width="260dp"
android:layout_height="260dp"
android:id="@+id/sp_post_iv"
android:background="@drawable/sd_special_poster_bg"
android:layout_gravity="center_horizontal"
android:scaleType="centerCrop"
/>
<ProgressBar
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sp_process"
android:visibility="gone"
android:layout_marginTop="-150dp"
/>
</LinearLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/sd_special_white_nor"
android:text="查看详情"
android:id="@+id/sp_intoinfo"
android:layout_marginLeft="0dp"
android:focusable="false"
/>
<ProgressBar
android:id="@+id/sp_down"
android:layout_width="111dp"
android:layout_height="31dp"
android:max="100"
android:layout_gravity="center_horizontal"
android:text="下载"
android:layout_marginLeft="13dp"
android:background="@drawable/sd_special_white_nor"
style="@style/progressBarHorizontal_arabia_sp"
android:indeterminateOnly="false"
>
</ProgressBar>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right"
>
<TextView
android:layout_width="105dp"
android:layout_height="wrap_content"
android:text="下载"
android:textColor="@color/black"
android:id="@+id/sp_down_tx"
android:layout_marginRight="21dp"
android:layout_marginTop="5dp"
android:gravity="center_horizontal"
/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</com.m4399.gamecenter.widget.CustomGalleryLinearLayout>
package com.m4399.gamecenter.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
public class CustomGalleryLinearLayout extends LinearLayout {
public CustomGalleryLinearLayout(Context context) {
super(context);
}
public CustomGalleryLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setPressed(boolean pressed) {
super.setPressed(false);
}
@Override
protected void dispatchSetPressed(boolean pressed) {
pressed = false;
super.dispatchSetPressed(pressed);
}
@Override
public void dispatchSetSelected(boolean selected) {
selected = false;
super.dispatchSetSelected(selected);
}
}
这样就ok了