我对徽章的概念不熟悉。在我的应用程序中,我想在一个选项卡上显示徽章。为此,我使用了android-viewbadger.jar文件Android ViewBadger 它有4个选项卡正常工作,
TabWidget tabs = (TabWidget) findViewById(android.R.id.tabs);
badge1 = new BadgeView(this, tabs, 1);
badge1.setText("155");
badge1.setBadgePosition(BadgeView.POSITION_BOTTOM_RIGHT);
badge1.toggle();
当我在这里添加一个标签时,它将看起来像这样
我已经使用这些徽章属性
badge1.setPadding(left, top, right, bottom);
badge1.setTextSize(15);
badge1.setBadgeMargin(5,5);
badge1.setWidth(10);
答案 0 :(得分:1)
在TabWidget上设置徽章只会在drawable和TabWidget边界之间的空间中显示徽章,因此添加更多选项卡将压缩徽章。而是使用setIndicator(String,Drawable),试试这个:
ImageView iv = new ImageView(this);
iv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
iv.setImageResource(R.drawable.whoseinterested);
whosespec.setIndicator(iv);
Intent whoseIntent = new Intent(this, BlankActivity.class);
whosespec.setContent(whoseIntent);
tabHost.addTab(whosespec);
badge1 = new BadgeView(this, iv);
badge1.setText("155");
badge1.setTextSize(15);
badge1.setBadgeBackgroundColor(Color.BLACK);
badge1.setTextColor(Color.WHITE);
badge1.toggle();
截图:
您可以在屏幕截图中清楚地看到带徽章的标签中的图像向中心移动。如果图像与其标签边界之间没有空格,则无法正确显示。
来源:自我测试。
答案 1 :(得分:1)
您可以在imageview中选项卡的视图中设置徽章
试试这个
TabWidget tabsw = (TabWidget) rootView.findViewById(android.R.id.tabs);
ViewGroup viewgroup = (ViewGroup) tabsw.getChildAt(0);
viewgroup.getChildCount();
for (int i = 0; i < viewgroup.getChildCount(); i++) {
if (viewgroup.getChildAt(i) instanceof ImageView) {
ImageView new_name = (ImageView) viewgroup.getChildAt(i);
badge7 = new BadgeView(getActivity(),new_name);
badge7.setText("9");
badge7.setTextSize(9);
badge7.setBadgeMargin(0,0);
badge7.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);
badge7.toggle();
}
}