1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Android-TV-TvFocusBorder

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

欢迎使用 Android TV 端焦点框框架 TvFocusBorder

  • Поддержка TvRecyclerView для перемещения фокуса.
  • Поддержка использования цвета или изображения в качестве рамки фокуса.
  • Поддержка изменения скругления углов рамки фокуса.

Эффект

[Рис. focus3.gif]

Gradle 引入

//support版本
implementation 'com.owen:tv-focusborder:1.1.4'

//androidx版本
implementation 'com.owen:tv-focusborder:2.0.0'

Использование

/** 颜色焦点框 */
FocusBorder mColorFocusBorder = new FocusBorder.Builder().asColor()
        //阴影宽度(方法shadowWidth(18f)也可以设置阴影宽度)
        .shadowWidth(TypedValue.COMPLEX_UNIT_DIP, 20f)
        //阴影颜色
        .shadowColor(Color.parseColor("#3FBB66"))
        //边框宽度(метод borderWidth(2f) также может устанавливать ширину границы)
        .borderWidth(TypedValue.COMPLEX_UNIT_DIP, 3.2f)
        //边框颜色
        .borderColor(Color.parseColor("#00FF00"))
        //padding值
        .padding(2f)
        //动画时长
        .animDuration(300)
        //不要闪光动画
        //.noShimmer()
        //闪光颜色
        .shimmerColor(Color.parseColor("#66FFFFFF"))
        //闪光动画时长
        .shimmerDuration(1000)
        //不要呼吸灯效果
        //.noBreathing()
        //呼吸灯效果时长
        .breathingDuration(3000)
        //边框动画模式
        .animMode(AbsFocusBorder.Mode.SEQUENTIALLY)
        .build(this);

//焦点监听 方式一:绑定整个页面的焦点监听事件
mColorFocusBorder.boundGlobalFocusListener(new FocusBorder.OnFocusCallback() {
    @Override
    public FocusBorder.Options onFocus(View oldFocus, View newFocus) {
        if(null != newFocus) {
            switch (newFocus.getId()) {
                case R.id.round_frame_layout_1:
                case R.id.round_frame_layout_6:
                    float scale = 1.2f;
                    return FocusBorder.OptionsFactory.get(scale, scale, dp2px(radius) * scale);

                default:
                    break;
            }
        }
        //返回null表示不使用焦点框框架
        return null;
    }
});


/** 图片焦点框 */
FocusBorder mDrawableFocusBorder = new FocusBorder.Builder().asDrawable()
        .borderDrawableRes(R.mipmap.focus)
        .titleBackgroundRes(R.drawable.shape_item_title_bg)
        .titleMarginBottomAutoAlignBorder()
        .titleMargin(10, 0, 10, 4)
        .titlePadding(10)
        .titleTextColor(Color.LTGRAY)
        .titleTextSize(24)
        .titleWidth(ViewGroup.LayoutParams.MATCH_PARENT)
        ...
        .build(this);

//焦点监听 方式二:单个的焦点监听事件
view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus) {
            mDrawableFocusBorder.onFocus(v, FocusBorder.OptionsFactory.get(1.2f, 1.2f));
        }
    }
});

Более подробное использование см. в примере


С наилучшими пожеланиями,

Автор: owen

Присоединиться к группе: 484790001 (при присоединении укажите источник и цель)

[Рис. qq.png]

  • TvRecyclerView — фреймворк для Android TV.
  • TvTabLayout — Tab-фреймворк.
  • TvWidget — набор виджетов для Android TV.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Android TV: рамка фокуса; поддерживает установку цвета или изображения в качестве рамки фокуса; поддерживает изменение скругления углов. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Android-TV-TvFocusBorder.git
git@api.gitlife.ru:oschina-mirror/Android-TV-TvFocusBorder.git
oschina-mirror
Android-TV-TvFocusBorder
Android-TV-TvFocusBorder
master