Java Code Examples for android.util.TypedValue#getFloat()

The following examples show how to use android.util.TypedValue#getFloat() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ChromaDialogFixed.java    From TwistyTimer with GNU General Public License v3.0 6 votes vote down vote up
private void measureLayout(AlertDialog ad) {
    int widthMultiplier = getResources().getConfiguration()
            .orientation == Configuration.ORIENTATION_LANDSCAPE
            ? 2
            : 1;

    TypedValue typedValue = new TypedValue();
    getResources().getValue(R.dimen.chroma_dialog_height_multiplier, typedValue, true);
    float heightMultiplier = typedValue.getFloat();

    int height = getResources().getConfiguration()
            .orientation == Configuration.ORIENTATION_LANDSCAPE
            ? (int) (ad.getContext().getResources().getDisplayMetrics().heightPixels * heightMultiplier)
            : WindowManager.LayoutParams.WRAP_CONTENT;

    int width = getResources().getDimensionPixelSize(R.dimen.chroma_dialog_width) * widthMultiplier;

    ad.getWindow().setLayout(width, height);
}
 
Example 2
Source File: FeatureOverlayQuery.java    From geopackage-android-map with MIT License 6 votes vote down vote up
/**
 * Constructor
 *
 * @param context        context
 * @param boundedOverlay bounded overlay
 * @param featureTiles   feature tiles
 * @since 1.2.5
 */
public FeatureOverlayQuery(Context context, BoundedOverlay boundedOverlay, FeatureTiles featureTiles) {
    this.boundedOverlay = boundedOverlay;
    this.featureTiles = featureTiles;

    Resources resources = context.getResources();

    // Get the screen percentage to determine when a feature is clicked
    TypedValue screenPercentage = new TypedValue();
    resources.getValue(R.dimen.map_feature_overlay_click_screen_percentage, screenPercentage, true);
    screenClickPercentage = screenPercentage.getFloat();

    maxFeaturesInfo = resources.getBoolean(R.bool.map_feature_overlay_max_features_info);
    featuresInfo = resources.getBoolean(R.bool.map_feature_overlay_features_info);

    FeatureDao featureDao = featureTiles.getFeatureDao();
    featureInfoBuilder = new FeatureInfoBuilder(context, featureDao);
}
 
Example 3
Source File: OverflowListView.java    From ProjectX with Apache License 2.0 6 votes vote down vote up
OverflowListView(Context context) {
    super(context);
    setWillNotDraw(false);
    final Resources resources = context.getResources();
    final TypedValue outValue = new TypedValue();
    resources.getValue(R.dimen.floatingActionModeOverflowItemMaxShowCount, outValue, true);
    float count = outValue.getFloat();
    int overflowMinimumWidth = resources.getDimensionPixelOffset(
            R.dimen.floatingActionModeOverflowItemMinimumWidth);
    @SuppressLint("CustomViewStyleable") final TypedArray custom =
            context.obtainStyledAttributes(R.styleable.FloatingActionMode);
    count = custom.getFloat(
            R.styleable.FloatingActionMode_floatingActionModeOverflowItemMaxShowCount, count);
    overflowMinimumWidth = custom.getDimensionPixelOffset(
            R.styleable.FloatingActionMode_floatingActionModeOverflowItemMinimumWidth,
            overflowMinimumWidth);
    custom.recycle();
    setItemMinimumWidth(overflowMinimumWidth);
    mMaxHeight = (int) (mCalculator.getSize() * count);
    mCornerCrop.setFillType(Path.FillType.EVEN_ODD);
    mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    mCropPath.setFillType(Path.FillType.EVEN_ODD);
    setOnItemClickListener(this);
}
 
Example 4
Source File: BrushSelector.java    From justaline-android with Apache License 2.0 6 votes vote down vote up
private void onBrushSizeSelected(AppSettings.LineWidth lineWidth) {
    mSelectedLineWidth = lineWidth;

    TypedValue outValue = new TypedValue();

    switch (lineWidth) {
        case SMALL:
            getResources().getValue(R.dimen.brush_scale_small, outValue, true);
            mSelectedBrush = SMALL_BRUSH;
            break;
        case MEDIUM:
            getResources().getValue(R.dimen.brush_scale_medium, outValue, true);
            mSelectedBrush = MEDIUM_BRUSH;
            break;
        default:
        case LARGE:
            getResources().getValue(R.dimen.brush_scale_large, outValue, true);
            mSelectedBrush = LARGE_BRUSH;
            break;
    }

    float scale = outValue.getFloat();

    mSelectedSizeIndicator.animate().scaleX(scale).scaleY(scale);
}
 
Example 5
Source File: ScalableTextView.java    From ticdesign with Apache License 2.0 6 votes vote down vote up
@TargetApi(21)
public ScalableTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    TypedArray a = context.obtainStyledAttributes(attrs,
            R.styleable.ScalableTextView, defStyleAttr, defStyleRes);

    float defaultFactor;
    if (isInEditMode()) {
        defaultFactor = 0;
    } else {
        TypedValue typedValue = new TypedValue();
        getResources().getValue(R.integer.design_factor_title_scale, typedValue, true);
        defaultFactor = typedValue.getFloat();
    }
    mScaleFactor = a.getFloat(R.styleable.ScalableTextView_tic_scaleFactor, defaultFactor);

    a.recycle();
}
 
Example 6
Source File: Rotate3dAnimation.java    From pe-protector-moe with GNU General Public License v3.0 5 votes vote down vote up
Description parseValue(TypedValue value) {
    Description d = new Description();
    if (value == null) {
        d.type = ABSOLUTE;
        d.value = 0;
    } else {
        if (value.type == TypedValue.TYPE_FRACTION) {
            d.type = (value.data & TypedValue.COMPLEX_UNIT_MASK) ==
                    TypedValue.COMPLEX_UNIT_FRACTION_PARENT ?
                    RELATIVE_TO_PARENT : RELATIVE_TO_SELF;
            d.value = TypedValue.complexToFloat(value.data);
            return d;
        } else if (value.type == TypedValue.TYPE_FLOAT) {
            d.type = ABSOLUTE;
            d.value = value.getFloat();
            return d;
        } else if (value.type >= TypedValue.TYPE_FIRST_INT &&
                value.type <= TypedValue.TYPE_LAST_INT) {
            d.type = ABSOLUTE;
            d.value = value.data;
            return d;
        }
    }

    d.type = ABSOLUTE;
    d.value = 0.0f;

    return d;
}
 
Example 7
Source File: Utils.java    From indeterminate-checkbox with Apache License 2.0 5 votes vote down vote up
private static float resolveFloat(Context context, @AttrRes int attr, float defaultValue) {
    TypedValue val = new TypedValue();
    if (context.getTheme().resolveAttribute(attr, val, true)) {
        return val.getFloat();
    } else {
        return defaultValue;
    }
}
 
Example 8
Source File: ResourceUtil.java    From UIWidget with Apache License 2.0 5 votes vote down vote up
public float getAttrFloat(int attrRes, float def) {
    float result = def;
    try {
        TypedValue typedValue = new TypedValue();
        mContext.getTheme().resolveAttribute(attrRes, typedValue, true);
        result = typedValue.getFloat();
    } catch (Exception e) {

    }
    return result == 0 ? def : result;
}
 
Example 9
Source File: MyFocusHighlightHelper.java    From LeanbackTvSample with MIT License 5 votes vote down vote up
void lazyInit(View view) {
    if (!mInitialized) {
        Resources res = view.getResources();
        TypedValue value = new TypedValue();
        res.getValue(R.dimen.lb_browse_header_select_scale, value, true);
        mSelectScale = value.getFloat();
        res.getValue(R.dimen.lb_browse_header_select_duration, value, true);
        mDuration = value.data;
        mInitialized = true;
    }
}
 
Example 10
Source File: OverviewConfiguration.java    From StackOverView with MIT License 5 votes vote down vote up
/** Updates the state, given the specified context */
void update(Context context) {
    Resources res = context.getResources();
    DisplayMetrics dm = res.getDisplayMetrics();

    // Insets
    displayRect.set(0, 0, dm.widthPixels, dm.heightPixels);

    // Task stack
    taskStackScrollDuration =
            res.getInteger(R.integer.recents_animate_task_stack_scroll_duration);

    //获取dimen资源值
    TypedValue widthPaddingPctValue = new TypedValue();
    res.getValue(R.dimen.recents_stack_width_padding_percentage, widthPaddingPctValue, true);
    taskStackWidthPaddingPct = widthPaddingPctValue.getFloat();

    //获取dimen资源值
    TypedValue stackOverscrollPctValue = new TypedValue();
    res.getValue(R.dimen.recents_stack_overscroll_percentage, stackOverscrollPctValue, true);
    taskStackOverscrollPct = stackOverscrollPctValue.getFloat();

    taskStackMaxDim = res.getInteger(R.integer.recents_max_task_stack_view_dim);
    taskStackTopPaddingPx = res.getDimensionPixelSize(R.dimen.recents_stack_top_padding);

    // Task view animation and styles
    taskViewEnterFromHomeDelay =
            res.getInteger(R.integer.recents_animate_task_enter_from_home_delay);
    taskViewEnterFromHomeDuration =
            res.getInteger(R.integer.recents_animate_task_enter_from_home_duration);
    taskViewEnterFromHomeStaggerDelay =
            res.getInteger(R.integer.recents_animate_task_enter_from_home_stagger_delay);
    taskViewRemoveAnimDuration =
            res.getInteger(R.integer.recents_animate_task_view_remove_duration);
    taskViewRemoveAnimTranslationXPx =
            res.getDimensionPixelSize(R.dimen.recents_task_view_remove_anim_translation_x);
    taskViewTranslationZMinPx = res.getDimensionPixelSize(R.dimen.recents_task_view_z_min);
    taskViewTranslationZMaxPx = res.getDimensionPixelSize(R.dimen.recents_task_view_z_max);
}
 
Example 11
Source File: Utils.java    From simpletask-android with GNU General Public License v3.0 5 votes vote down vote up
private static float resolveFloat(Context context, @AttrRes int attr, float defaultValue) {
    TypedValue val = new TypedValue();
    if (context.getTheme().resolveAttribute(attr, val, true)) {
        return val.getFloat();
    } else {
        return defaultValue;
    }
}
 
Example 12
Source File: MoviesActivity.java    From AndroidSchool with Apache License 2.0 5 votes vote down vote up
@NonNull
private MoviesAdapter createAdapter() {
    TypedValue typedValue = new TypedValue();
    getResources().getValue(R.dimen.rows_count, typedValue, true);
    float rowsCount = typedValue.getFloat();
    int actionBarHeight = getTheme().resolveAttribute(R.attr.actionBarSize, typedValue, true)
            ? TypedValue.complexToDimensionPixelSize(typedValue.data, getResources().getDisplayMetrics())
            : 0;
    int imageHeight = (int) ((getResources().getDisplayMetrics().heightPixels - actionBarHeight) / rowsCount);

    int columns = getResources().getInteger(R.integer.columns_count);
    int imageWidth = getResources().getDisplayMetrics().widthPixels / columns;

    return new MoviesAdapter(imageHeight, imageWidth, this);
}
 
Example 13
Source File: Utils.java    From BlackList with Apache License 2.0 5 votes vote down vote up
/**
 * Scales passed view with passed dimension on Tablets only
 */
public static void scaleViewOnTablet(Context context, View view, @DimenRes int dimenRes) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        boolean isTablet = context.getResources().getBoolean(R.bool.isTablet);
        if (isTablet) {
            TypedValue outValue = new TypedValue();
            context.getResources().getValue(dimenRes, outValue, true);
            float scale = outValue.getFloat();
            view.setScaleX(scale);
            view.setScaleY(scale);
        }
    }
}
 
Example 14
Source File: LockPatternView.java    From LockPattern with MIT License 5 votes vote down vote up
private void initDefaultFloats(){
    TypedValue tv = new TypedValue();
    getResources().getValue(R.dimen.dotAnimScaleMax, tv, true);
    mDotAnimationScaleMax = tv.getFloat();

    getResources().getValue(R.dimen.dotAnimScaleNormal, tv, true);
    mDotAnimationScaleNormal = tv.getFloat();
}
 
Example 15
Source File: RadialTimePickerView.java    From DateTimePicker with Apache License 2.0 4 votes vote down vote up
public RadialTimePickerView(
        Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)  {
    super(context, attrs);

    applyAttributes(attrs, defStyleAttr, defStyleRes);

    // Pull disabled alpha from theme.
    final TypedValue outValue = new TypedValue();
    context.getTheme().resolveAttribute(android.R.attr.disabledAlpha, outValue, true);
    mDisabledAlpha = outValue.getFloat();

    mTypeface = Typeface.create("sans-serif", Typeface.NORMAL);

    mPaint[HOURS] = new Paint();
    mPaint[HOURS].setAntiAlias(true);
    mPaint[HOURS].setTextAlign(Paint.Align.CENTER);

    mPaint[MINUTES] = new Paint();
    mPaint[MINUTES].setAntiAlias(true);
    mPaint[MINUTES].setTextAlign(Paint.Align.CENTER);

    mPaintCenter.setAntiAlias(true);

    mPaintSelector[SELECTOR_CIRCLE] = new Paint();
    mPaintSelector[SELECTOR_CIRCLE].setAntiAlias(true);

    mPaintSelector[SELECTOR_DOT] = new Paint();
    mPaintSelector[SELECTOR_DOT].setAntiAlias(true);

    mPaintSelector[SELECTOR_LINE] = new Paint();
    mPaintSelector[SELECTOR_LINE].setAntiAlias(true);
    mPaintSelector[SELECTOR_LINE].setStrokeWidth(2);

    mPaintBackground.setAntiAlias(true);

    final Resources res = getResources();
    mSelectorRadius = res.getDimensionPixelSize(R.dimen.timepicker_selector_radius);
    mSelectorStroke = res.getDimensionPixelSize(R.dimen.timepicker_selector_stroke);
    mSelectorDotRadius = res.getDimensionPixelSize(R.dimen.timepicker_selector_dot_radius);
    mCenterDotRadius = res.getDimensionPixelSize(R.dimen.timepicker_center_dot_radius);

    mTextSize[HOURS] = res.getDimensionPixelSize(R.dimen.timepicker_text_size_normal);
    mTextSize[MINUTES] = res.getDimensionPixelSize(R.dimen.timepicker_text_size_normal);
    mTextSize[HOURS_INNER] = res.getDimensionPixelSize(R.dimen.timepicker_text_size_inner);

    mTextInset[HOURS] = res.getDimensionPixelSize(R.dimen.timepicker_text_inset_normal);
    mTextInset[MINUTES] = res.getDimensionPixelSize(R.dimen.timepicker_text_inset_normal);
    mTextInset[HOURS_INNER] = res.getDimensionPixelSize(R.dimen.timepicker_text_inset_inner);

    mShowHours = true;
    mHoursToMinutes = HOURS;
    mIs24HourMode = false;
    mAmOrPm = AM;

    // Set up accessibility components.
    mTouchHelper = new RadialPickerTouchHelper();
    ViewCompat.setAccessibilityDelegate(this, mTouchHelper);
    //setAccessibilityDelegate(mTouchHelper);

    if(ViewCompat.getImportantForAccessibility(this) == ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO){
        ViewCompat.setImportantForAccessibility(this, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES);
    }
    /*if (getImportantForAccessibility() == IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
        setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
    }*/

    initHoursAndMinutesText();
    initData();

    // Initial values
    final Calendar calendar = Calendar.getInstance(Locale.getDefault());
    final int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
    final int currentMinute = calendar.get(Calendar.MINUTE);

    setCurrentHourInternal(currentHour, false, false);
    setCurrentMinuteInternal(currentMinute, false);

    setHapticFeedbackEnabled(true);
}
 
Example 16
Source File: NumberFeaturesTile.java    From geopackage-android with MIT License 4 votes vote down vote up
/**
 * Constructor
 *
 * @param context context
 */
public NumberFeaturesTile(Context context) {

    Resources resources = context.getResources();

    // Set the default text paint values
    textPaint.setColor(ContextCompat.getColor(context, R.color.number_features_tile_text_color));
    textPaint.setTextSize(resources.getDimensionPixelSize(R.dimen.number_features_tile_text_size));

    // Set the default circle paint values
    if (resources.getBoolean(R.bool.number_features_tile_circle_draw)) {
        circlePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        circlePaint.setStyle(Paint.Style.STROKE);
        circlePaint.setColor(ContextCompat.getColor(context, R.color.number_features_tile_circle_color));
        TypedValue circleStrokeWidth = new TypedValue();
        resources.getValue(R.dimen.number_features_tile_circle_stroke_width,
                circleStrokeWidth, true);
        circlePaint.setStrokeWidth(circleStrokeWidth.getFloat());
    }

    // Set the default circle fill paint values
    if (resources.getBoolean(R.bool.number_features_tile_circle_fill_draw)) {
        circleFillPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        circleFillPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        circleFillPaint.setColor(ContextCompat.getColor(context, R.color.number_features_tile_circle_fill_color));
    }

    // Set the default tile border paint values
    if (resources.getBoolean(R.bool.number_features_tile_border_draw)) {
        tileBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        tileBorderPaint.setStyle(Paint.Style.STROKE);
        tileBorderPaint.setColor(ContextCompat.getColor(context, R.color.number_features_tile_border_color));
        TypedValue tileBorderStrokeWidth = new TypedValue();
        resources.getValue(R.dimen.number_features_tile_border_stroke_width,
                tileBorderStrokeWidth, true);
        tileBorderPaint.setStrokeWidth(tileBorderStrokeWidth.getFloat());
    }

    // Set the default tile fill paint values
    if (resources.getBoolean(R.bool.number_features_tile_fill_draw)) {
        tileFillPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        tileFillPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        tileFillPaint.setColor(ContextCompat.getColor(context, R.color.number_features_tile_fill_color));
    }

    // Set the default circle padding percentage
    TypedValue circlePadding = new TypedValue();
    resources.getValue(R.dimen.number_features_tile_circle_padding_percentage,
            circlePadding, true);
    circlePaddingPercentage = circlePadding.getFloat();

    // Set the default draw unindexed tiles value
    drawUnindexedTiles = resources.getBoolean(R.bool.number_features_tile_unindexed_draw);
}
 
Example 17
Source File: PickerThemeUtils.java    From AppCompat-Extension-Library with Apache License 2.0 4 votes vote down vote up
public static float getDisabledAlpha(Context context) {
    final TypedValue outValue = new TypedValue();
    context.getTheme().resolveAttribute(android.R.attr.disabledAlpha, outValue, true);
    return outValue.getFloat();
}
 
Example 18
Source File: MaterialNavigationDrawer.java    From AdvancedMaterialDrawer with Apache License 2.0 4 votes vote down vote up
@SuppressLint("LongLogTag")
    private void initThemeVars(Resources.Theme theme) {
        DisplayMetrics dm = getResources().getDisplayMetrics();

        // init theme params
        TypedValue typedValue = new TypedValue();

        theme.resolveAttribute(R.attr.colorPrimary, typedValue, true);
        primaryColor = typedValue.data;

        theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true);
        primaryDarkColor = typedValue.data;

        theme.resolveAttribute(R.attr.autoDarkStatusBar, typedValue, true);
        autoDarkStatusbar = typedValue.data != 0;

        theme.resolveAttribute(R.attr.uniqueToolbarColor, typedValue, false);
        uniqueToolbarColor = typedValue.data != 0;

        theme.resolveAttribute(R.attr.drawerColor, typedValue, true);
        drawerColor = typedValue.data;

       /* theme.resolveAttribute(R.attr.dividerColor, typedValue, true);
        dividerColor = typedValue.data;
*/
        theme.resolveAttribute(R.attr.drawerWidth, typedValue, true);
        drawerWidth = (int) typedValue.getDimension(dm);
        //TypedValue.complexToDimensionPixelSize(typedValue.data, getResources().getDisplayMetrics());
        if (drawerWidth < 0) {
            drawerWidth = 1;
        } else {
            setDrawerStateListener(new DefaultDrawerListener(drawerWidth));
        }

        theme.resolveAttribute(R.attr.dividerStrokeWidth, typedValue, true);
        dividerStrokeThickness = (int) typedValue.getDimension(dm);
        //TypedValue.complexToDimensionPixelSize(typedValue.data, getResources().getDisplayMetrics());
        if (dividerStrokeThickness < 0) {
            dividerStrokeThickness = 1;
        }

        theme.resolveAttribute(R.attr.belowToolbar, typedValue, true);
        belowToolbar = typedValue.data != 0;

        theme.resolveAttribute(R.attr.multipaneSupport, typedValue, false);
        multiPaneSupport = typedValue.data != 0;

        theme.resolveAttribute(R.attr.titleColor, typedValue, true);
        theme.resolveAttribute(R.attr.headItemStyle, typedValue, true);

        // Values of the NavigationDrawer
        TypedArray valuesNavigationDrawer = theme.obtainStyledAttributes(typedValue.resourceId, R.styleable.MaterialNavigationDrawer);
        dividerColor = valuesNavigationDrawer.getDrawable(R.styleable.MaterialNavigationDrawer_dividerColor);

        // Values of the Account
        TypedArray values = theme.obtainStyledAttributes(typedValue.resourceId, R.styleable.MaterialHeadItem);

        theme.resolveAttribute(R.attr.actionBarOverlay, typedValue, false);
        actionBarOverlay = typedValue.data != 0;

        theme.resolveAttribute(R.attr.actionBarOverlayAlpha, typedValue, false);
        actionBarOverlayAlpha = typedValue.getFloat();

        //actionbar style customization
        theme.resolveAttribute(R.attr.drawerActionBarStyle, typedValue, true);
        drawerActionBarStyle = typedValue.data;
    }
 
Example 19
Source File: CoordinatorLayout.java    From ticdesign with Apache License 2.0 4 votes vote down vote up
public CoordinatorLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    if (!isInEditMode()) {
        ThemeUtils.checkDesignTheme(context);
    }

    final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CoordinatorLayout,
            defStyleAttr, defStyleRes);
    final int keylineArrayRes = a.getResourceId(R.styleable.CoordinatorLayout_tic_keylines, 0);
    if (keylineArrayRes != 0) {
        final Resources res = context.getResources();
        mKeylines = res.getIntArray(keylineArrayRes);
        final float density = res.getDisplayMetrics().density;
        final int count = mKeylines.length;
        for (int i = 0; i < count; i++) {
            mKeylines[i] *= density;
        }
    }
    mStatusBarBackground = a.getDrawable(R.styleable.CoordinatorLayout_tic_statusBarBackground);

    int effect = a.getInt(R.styleable.CoordinatorLayout_tic_overScrollEffect, OverScrollEffect.BOUNCE.ordinal());
    mOverScrollEffect = OverScrollEffect.values()[effect];

    a.recycle();

    super.setOnHierarchyChangeListener(new HierarchyChangeListener());

    mScrollBarHelper = new ScrollBarHelper(context, attrs, defStyleAttr);
    mViewScrollingStatusAccessor = new ViewScrollingStatusAccessor();

    if (mEdgeGlowTop == null) {
        mEdgeGlowTop = new ClassicEdgeEffect(context);
        mEdgeGlowBottom = new ClassicEdgeEffect(context);
    }

    mSystemShapeUpdated = false;
    setupForWindowInsets();

    if (isInEditMode()) {
        mOverScrollOffsetFactor = 0.5f;
        mOverScrollOffsetLimit = Integer.MAX_VALUE;
    } else {
        TypedValue typedValue = new TypedValue();
        getResources().getValue(R.integer.design_factor_over_scroll_bounce, typedValue, true);
        mOverScrollOffsetFactor = typedValue.getFloat();
        mOverScrollOffsetLimit = getResources().getDimensionPixelOffset(R.dimen.design_over_scroll_limit);
    }

    setWillNotDraw(false);
}
 
Example 20
Source File: ButtonLayout.java    From SublimePicker with Apache License 2.0 4 votes vote down vote up
void initialize() {
    Context context = getContext();
    final Resources res = getResources();

    final TypedArray a = context.obtainStyledAttributes(R.styleable.ButtonLayout);

    if (SUtils.isApi_17_OrHigher()) {
        setLayoutDirection(LAYOUT_DIRECTION_LOCALE);
    }

    setOrientation(HORIZONTAL);
    setGravity(Gravity.BOTTOM);

    setPadding(res.getDimensionPixelSize(R.dimen.sp_button_bar_padding_start),
            res.getDimensionPixelSize(R.dimen.sp_button_bar_padding_top),
            res.getDimensionPixelSize(R.dimen.sp_button_bar_padding_end),
            res.getDimensionPixelSize(R.dimen.sp_button_bar_padding_bottom));

    final LayoutInflater inflater = (LayoutInflater) context.getSystemService(
            Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.sublime_button_panel_layout, this, true);

    mSwitcherButton = (Button) findViewById(R.id.buttonSwitcher);

    Button bPositive = (Button) findViewById(R.id.buttonPositive);
    Button bNegative = (Button) findViewById(R.id.buttonNegative);

    ImageView ivPositive = (ImageView) findViewById(R.id.imageViewPositive);
    ImageView ivNegative = (ImageView) findViewById(R.id.imageViewNegative);

    try {
        // obtain float value held by android.R.attr.disabledAlpha
        TypedValue typedValueDisabledAlpha = new TypedValue();
        getContext().getTheme().resolveAttribute(android.R.attr.disabledAlpha,
                typedValueDisabledAlpha, true);

        // defaults to 0.5 ~ 122/255
        mDisabledAlpha = typedValueDisabledAlpha.type == TypedValue.TYPE_FLOAT ?
                (int) (typedValueDisabledAlpha.getFloat() * 255)
                : 122;

        // buttons or icons?
        int presentation = a.getInt(R.styleable.ButtonLayout_spPresentation, 0);

        int bgColor = a.getColor(R.styleable.ButtonLayout_spButtonBgColor,
                SUtils.COLOR_BUTTON_NORMAL);
        int pressedBgColor = a.getColor(R.styleable.ButtonLayout_spButtonPressedBgColor,
                SUtils.COLOR_CONTROL_HIGHLIGHT);

        mButtonBarBgColor = a.getColor(R.styleable.ButtonLayout_spButtonBarBgColor,
                Color.TRANSPARENT);
        SUtils.setViewBackground(mSwitcherButton,
                SUtils.createButtonBg(context, bgColor,
                        pressedBgColor));
        setBackgroundColor(mButtonBarBgColor);

        if (presentation == 0 /* mode: Button */) {
            bPositive.setVisibility(View.VISIBLE);
            bNegative.setVisibility(View.VISIBLE);

            bPositive.setText(res.getString(R.string.ok));
            bNegative.setText(res.getString(R.string.cancel));

            SUtils.setViewBackground(bPositive,
                    SUtils.createButtonBg(context, bgColor,
                            pressedBgColor));
            SUtils.setViewBackground(bNegative,
                    SUtils.createButtonBg(context, bgColor,
                            pressedBgColor));

            mPositiveButton = bPositive;
            mNegativeButton = bNegative;
        } else /* mode: ImageView */ {
            ivPositive.setVisibility(View.VISIBLE);
            ivNegative.setVisibility(View.VISIBLE);

            mIconOverlayColor = a.getColor(R.styleable.ButtonLayout_spIconColor,
                    SUtils.COLOR_ACCENT);

            ivPositive.setColorFilter(mIconOverlayColor, PorterDuff.Mode.MULTIPLY);
            ivNegative.setColorFilter(mIconOverlayColor, PorterDuff.Mode.MULTIPLY);

            SUtils.setViewBackground(ivPositive,
                    SUtils.createImageViewBg(bgColor,
                            pressedBgColor));
            SUtils.setViewBackground(ivNegative,
                    SUtils.createImageViewBg(bgColor,
                            pressedBgColor));

            mPositiveButton = ivPositive;
            mNegativeButton = ivNegative;
        }
    } finally {
        a.recycle();
    }

    // set OnClickListeners
    mPositiveButton.setOnClickListener(this);
    mNegativeButton.setOnClickListener(this);
    mSwitcherButton.setOnClickListener(this);
}