其实书架效果很好实现的,只要在自定义的GridView中的onDraw()方法中计算下书架的位置矩形,然后draw出来就OK,个人认为比较简单。

代码如下:

 public class PlaybackFocusedGridView extends FocusedGridView {
Drawable mInterlayer = this.getResources().getDrawable(R.drawable.tv_playback_shelf);//书架图片
Rect mMyDrawRect = new Rect();//书架的矩形位置


public PlaybackFocusedGridView(Context contxt, AttributeSet attrs, int defStyle) {
super(contxt, attrs, defStyle);
}


public PlaybackFocusedGridView(Context contxt, AttributeSet attrs) {
super(contxt, attrs);
}


public PlaybackFocusedGridView(Context contxt) {
super(contxt);
}


@Override
protected void onDraw(Canvas canvas) {
int count = getChildCount();
if (count > 0) {     //当有内容时
View v = getChildAt(0);//获取屏幕的第一个可见的View


if (v != null) {
int gridview_height = this.getHeight();
int interlayerHeight = mInterlayer.getIntrinsicHeight();
int blockGapHeight = v.getHeight();
mMyDrawRect.left = 0;
mMyDrawRect.right = getWidth();
int initPos = v.getTop();

for (int i = initPos; i <= gridview_height; i += blockGapHeight) {
mMyDrawRect.top = i;
mMyDrawRect.bottom = mMyDrawRect.top + interlayerHeight;
mInterlayer.setBounds(mMyDrawRect);
mInterlayer.draw(canvas);//画书架图片
}
}


super.onDraw(canvas);//画每一个Item
}
}
}

更多相关文章

  1. Android(安卓)Studio编译一次源码versionCode自增
  2. android.graphics包中的一些类的使用
  3. Android仿iphone自定义滚动选择器
  4. Android(安卓)学习之Drawable-shape使用方法
  5. Android(安卓)自定义PopupWindow指定位置或给定View坐标弹出
  6. android 自定义xml存储方式以及存储位置
  7. Android(安卓)Studio中获取SHA1值
  8. Android(安卓)自定义SwitchButton开关控件
  9. 赵雅智_java的多线程下载移植到android客户端

随机推荐

  1. Android(安卓)studio使用问题收录
  2. Android类参考---SQLiteOpenHelper
  3. Android(安卓)LineaerLayout中layout_mar
  4. 整理 酷炫 Android、Flutter 开源UI框架
  5. 单元测试;Android应用程序架构;电话拔号
  6. Ubuntu下Chromium for Android(安卓)源码
  7. Window环境下搭建android NDK开发环境
  8. 如何构建Android(安卓)Sync Provider :Pa
  9. 怎样在Android中解析doc、docx、xls、xls
  10. Butter Knife 使用方法