/* * 官网地站:http://www.mob.com * 技术支持QQ: 4006852216 * 官方微信:ShareSDK (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复) * * Copyright (c) 2013年 mob.com. All rights reserved. */ package cn.sharesdk.onekeyshare.themes.classic.port; import java.util.ArrayList; import android.content.Context; import cn.sharesdk.onekeyshare.themes.classic.PlatformPage; import cn.sharesdk.onekeyshare.themes.classic.PlatformPageAdapter; import com.mob.tools.utils.R; /** 竖屏的九宫格页面适配器 */ public class PlatformPageAdapterPort extends PlatformPageAdapter { private static final int DESIGN_SCREEN_WIDTH_P = 720; private static final int DESIGN_SEP_LINE_WIDTH = 1; private static final int DESIGN_LOGO_HEIGHT = 76; private static final int DESIGN_PADDING_TOP = 20; private static final int PAGE_SIZE_P = 12; private static final int LINE_SIZE_P = 4; public PlatformPageAdapterPort(PlatformPage page, ArrayList<Object> cells) { super(page, cells); } protected void calculateSize(Context context, ArrayList<Object> plats) { int screenWidth = R.getScreenWidth(context); lineSize = LINE_SIZE_P; float ratio = ((float) screenWidth) / DESIGN_SCREEN_WIDTH_P; sepLineWidth = (int) (DESIGN_SEP_LINE_WIDTH * ratio); sepLineWidth = sepLineWidth < 1 ? 1 : sepLineWidth; logoHeight = (int) (DESIGN_LOGO_HEIGHT * ratio); paddingTop = (int) (DESIGN_PADDING_TOP * ratio); bottomHeight = (int) (DESIGN_BOTTOM_HEIGHT * ratio); cellHeight = (screenWidth - sepLineWidth * 3) / 4; if (plats.size() <= lineSize) { panelHeight = cellHeight + sepLineWidth; } else if (plats.size() <= PAGE_SIZE_P - lineSize) { panelHeight = (cellHeight + sepLineWidth) * 2; } else { panelHeight = (cellHeight + sepLineWidth) * 3; } } protected void collectCells(ArrayList<Object> plats) { int count = plats.size(); if (count < PAGE_SIZE_P) { int lineCount = (count / lineSize); if (count % lineSize != 0) { lineCount++; } cells = new Object[1][lineCount * lineSize]; } else { int pageCount = (count / PAGE_SIZE_P); if (count % PAGE_SIZE_P != 0) { pageCount++; } cells = new Object[pageCount][PAGE_SIZE_P]; } for (int i = 0; i < count; i++) { int p = i / PAGE_SIZE_P; cells[p][i - PAGE_SIZE_P * p] = plats.get(i); } } }