这个好像真不好弄。gridview的机制就是越靠后z-order越高
解决方案 »
- listview分页加载网络数据,点击Item进去出错
- 安卓的客户端和servlet写的服务端是放在同一个eclipse里吗?
- Html.fromHTML问题
- 有关初始化Activity的思考
- 打开Android虚拟机测试HELLO WORD的时候出现错误
- 如何查看activity的呼叫者
- viewpager里面的图片如何进行手势缩放?
- Android4.2.2 盒子 以太网打不开的问题
- 大家都用的哪些天气预报API接口
- 关于安卓通知Notification的使用,不能现实出来,请求解决,谢谢!
- 使用HTML5+JQuery Mobile+PhoneGap+Service开发移动应用"钱"途怎么样?
- android wifi信号强度上报
请问用windowmanager是怎么实现的,求指教[email protected]
2.用surfaceview来画。
上面的问题估计是默认画的顺序是从上到下,所以被覆盖了,要不就不要弄那么大咯。。稍大就好了
分三步走:
1、更改gridView绘制item顺序,时刻保持当前select的item是最后一个刷新;
2、利用点九图,经过本人实验数据、log输出证明,只要画一幅边缘透明的点九图,就相当于为gridView中item元素获取了绘制空间,具体设置,在xml :listselector 设置;
3、放大,传统做法,放大一般是在adapter里面实现,但是有个缺点,在adapter里面需要notifyDataSetChanged(),每调用一次,就会装载一次数据,对于解码较慢的图像,会出现闪烁效果。本人先给出第一步,其余的我以后会写篇博客,欢迎阅读
public class MyGridView extends GridView{
private int position=0; public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
setChildrenDrawingOrderEnabled(true);
}
@Override
protected void setChildrenDrawingOrderEnabled(boolean enabled) {
super.setChildrenDrawingOrderEnabled(enabled);
}
@Override
protected int getChildDrawingOrder(int childCount, int i) {
position = getSelectedItemPosition() - getFirstVisiblePosition();
if(position<0){
return i;
}else{
if(i == childCount - 1){//这是最后一个需要刷新的item
if(position>i){
position=i;
}
return position;
}
if(i == position){//这是原本要在最后一个刷新的item
return childCount - 1;
}
}
return i;
}
}