app/src/main/java/me/zhanghai/android/douya/ui/ActionItemBadge.java

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 * Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
 * All Rights Reserved.
 */

package me.zhanghai.android.douya.ui;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.support.v4.content.ContextCompat;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;

import butterknife.ButterKnife;
import me.zhanghai.android.douya.R;
import me.zhanghai.android.douya.util.CheatSheetUtils;
import me.zhanghai.android.douya.util.ViewCompat;
import me.zhanghai.android.douya.util.ViewUtils;

public class ActionItemBadge {

    public static void setup(final MenuItem menuItem, Drawable icon, int count,
                             final Activity activity) {

        View actionView = menuItem.getActionView();
        actionView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                activity.onMenuItemSelected(Window.FEATURE_OPTIONS_PANEL, menuItem);
            }
        });
        CharSequence title = menuItem.getTitle();
        if (!TextUtils.isEmpty(title)) {
            CheatSheetUtils.setup(actionView, title);
        }

        ImageView iconImage = ButterKnife.findById(actionView, R.id.icon);
        iconImage.setImageDrawable(icon);

        TextView badgeText = ButterKnife.findById(actionView, R.id.badge);
        Context themedContext = badgeText.getContext();
        ViewCompat.setBackground(badgeText, new BadgeDrawable(themedContext));
        badgeText.setTextColor(ViewUtils.getColorFromAttrRes(R.attr.colorPrimary, 0,
                themedContext));

        update(badgeText, count);
    }

    public static void setup(MenuItem menuItem, int iconResId, int count, Activity activity) {
        setup(menuItem, ContextCompat.getDrawable(activity, iconResId), count, activity);
    }

    private static void update(TextView badgeText, int count) {
        badgeText.setText(String.valueOf(count));
后面还有 21 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。