@Override protected View createLoadedView() { ScrollView mScrollView = new ScrollView(UIUtils.getContext()); mScrollView.setFillViewport(true); // 设置可以填充父窗体 // 初始化布局,该布局可以自动分配子View位置,保持每一行都能对齐 FlowLayout mLayout = new FlowLayout(UIUtils.getContext()); mLayout.setBackgroundResource(R.drawable.grid_item_bg_normal); int layoutPadding = UIUtils.dip2px(13); mLayout.setPadding(layoutPadding, layoutPadding, layoutPadding, layoutPadding); mLayout.setHorizontalSpacing(layoutPadding); mLayout.setVerticalSpacing(layoutPadding); int textPaddingV = UIUtils.dip2px(4); int textPaddingH = UIUtils.dip2px(7); int backColor = 0xffcecece; int radius = UIUtils.dip2px(5); // 代码动态创建一个图片 GradientDrawable pressDrawable = DrawableUtils.createDrawable(backColor, backColor, radius); Random mRdm = new Random(); for (int i = 0; i < mDatas.size(); i++) { TextView tv = new TextView(UIUtils.getContext()); // 随机颜色的范围0x202020~0xefefef int red = 32 + mRdm.nextInt(208); int green = 32 + mRdm.nextInt(208); int blue = 32 + mRdm.nextInt(208); int color = 0xff000000 | (red << 16) | (green << 8) | blue; // 创建背景图片选择器 GradientDrawable normalDrawable = DrawableUtils.createDrawable(color, backColor, radius); StateListDrawable selector = DrawableUtils.createSelector(normalDrawable, pressDrawable); tv.setBackgroundDrawable(selector); final String text = mDatas.get(i); tv.setText(text); tv.setTextColor(Color.rgb(255, 255, 255)); tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); tv.setGravity(Gravity.CENTER); tv.setPadding(textPaddingH, textPaddingV, textPaddingH, textPaddingV); tv.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { UIUtils.showToastSafe(text); } }); mLayout.addView(tv); } mScrollView.addView(mLayout); return mScrollView; }