Java Code Examples for android.content.res.TypedArray#getBoolean()
The following examples show how to use
android.content.res.TypedArray#getBoolean() .
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: KnifeText.java From Knife with Apache License 2.0 | 6 votes |
private void init(AttributeSet attrs) { TypedArray array = getContext().obtainStyledAttributes(attrs, R.styleable.KnifeText); bulletColor = array.getColor(R.styleable.KnifeText_bulletColor, 0); bulletRadius = array.getDimensionPixelSize(R.styleable.KnifeText_bulletRadius, 0); bulletGapWidth = array.getDimensionPixelSize(R.styleable.KnifeText_bulletGapWidth, 0); historyEnable = array.getBoolean(R.styleable.KnifeText_historyEnable, true); historySize = array.getInt(R.styleable.KnifeText_historySize, 100); linkColor = array.getColor(R.styleable.KnifeText_linkColor, 0); linkUnderline = array.getBoolean(R.styleable.KnifeText_linkUnderline, true); quoteColor = array.getColor(R.styleable.KnifeText_quoteColor, 0); quoteStripeWidth = array.getDimensionPixelSize(R.styleable.KnifeText_quoteStripeWidth, 0); quoteGapWidth = array.getDimensionPixelSize(R.styleable.KnifeText_quoteCapWidth, 0); array.recycle(); if (historyEnable && historySize <= 0) { throw new IllegalArgumentException("historySize must > 0"); } }
Example 2
Source File: AdapterViewFlipper.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
public AdapterViewFlipper( Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); final TypedArray a = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.AdapterViewFlipper, defStyleAttr, defStyleRes); mFlipInterval = a.getInt( com.android.internal.R.styleable.AdapterViewFlipper_flipInterval, DEFAULT_INTERVAL); mAutoStart = a.getBoolean( com.android.internal.R.styleable.AdapterViewFlipper_autoStart, false); // A view flipper should cycle through the views mLoopViews = true; a.recycle(); }
Example 3
Source File: PickerFragment.java From aws-mobile-self-paced-labs-samples with Apache License 2.0 | 6 votes |
@Override public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) { super.onInflate(activity, attrs, savedInstanceState); TypedArray a = activity.obtainStyledAttributes(attrs, R.styleable.com_facebook_picker_fragment); setShowPictures(a.getBoolean(R.styleable.com_facebook_picker_fragment_show_pictures, showPictures)); String extraFieldsString = a.getString(R.styleable.com_facebook_picker_fragment_extra_fields); if (extraFieldsString != null) { String[] strings = extraFieldsString.split(","); setExtraFields(Arrays.asList(strings)); } showTitleBar = a.getBoolean(R.styleable.com_facebook_picker_fragment_show_title_bar, showTitleBar); titleText = a.getString(R.styleable.com_facebook_picker_fragment_title_text); doneButtonText = a.getString(R.styleable.com_facebook_picker_fragment_done_button_text); titleBarBackground = a.getDrawable(R.styleable.com_facebook_picker_fragment_title_bar_background); doneButtonBackground = a.getDrawable(R.styleable.com_facebook_picker_fragment_done_button_background); a.recycle(); }
Example 4
Source File: BubbleLayout.java From bubble-layout with MIT License | 6 votes |
public BubbleLayout(Context c, AttributeSet attrs, int defStyleAttr) { super(c, attrs, defStyleAttr); // Create default sizes from density final float density = getResources().getDisplayMetrics().density; final int DEFAULT_BUBBLE_SIZE = (int)(40f * density); final int DEFAULT_BUBBLE_MARGIN = (int)(4f * density); final int DEFAULT_BORDER_WIDTH = (int)(1f * density); final int DEFAULT_BUBBLE_OFFSET = 2; // 1/2 of each bubble final int DEFAULT_BUBBLE_PEEK = 4; // Set XML attributes TypedArray a = c.obtainStyledAttributes(attrs, R.styleable.BubbleLayout); this.bubbleSize = a.getDimensionPixelSize(R.styleable.BubbleLayout_bubbleSize, DEFAULT_BUBBLE_SIZE); this.bubbleOffset = bubbleSize / (a.getInt(R.styleable.BubbleLayout_bubbleOffset, DEFAULT_BUBBLE_OFFSET)); this.bubblePeek = a.getInt(R.styleable.BubbleLayout_bubblePeek, DEFAULT_BUBBLE_PEEK); this.bubbleBorderWidth = a.getDimensionPixelSize(R.styleable.BubbleLayout_borderWidth, DEFAULT_BORDER_WIDTH); this.bubbleMargin = a.getDimensionPixelSize(R.styleable.BubbleLayout_bubbleMargin, DEFAULT_BUBBLE_MARGIN); this.bubbleBorderColor = a.getColor(R.styleable.BubbleLayout_borderColor, ContextCompat.getColor(c, R.color.default_circle_border_color)); this.textColor = a.getColor(R.styleable.BubbleLayout_android_textColor, ContextCompat.getColor(c, R.color.default_circle_text_color)); this.useOffset = a.getBoolean(R.styleable.BubbleLayout_useBubbleOffset, true); a.recycle(); }
Example 5
Source File: CircularProgress.java From fingerpoetry-android with Apache License 2.0 | 6 votes |
public CircularProgress(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray attributes = context.obtainStyledAttributes(attrs, R.styleable.CircularProgress); mColor = attributes.getColor(R.styleable.CircularProgress_circular_progress_color, getResources().getColor(R.color.circular_progress_color)); mSize = attributes.getInt(R.styleable.CircularProgress_circular_progress_size, NORMAL_SIZE); mIndeterminate = attributes.getBoolean(R.styleable.CircularProgress_circular_progress_indeterminate, getResources().getBoolean(R.bool.circular_progress_indeterminate)); mBorderWidth = attributes.getDimensionPixelSize(R.styleable.CircularProgress_circular_progress_border_width, getResources().getDimensionPixelSize(R.dimen.circular_progress_border_width)); mDuration = attributes.getInteger(R.styleable.CircularProgress_circular_progress_duration, ANIMATION_RESOLUTION); mMax = attributes.getInteger(R.styleable.CircularProgress_circular_progress_max, getResources().getInteger(R.integer.circular_progress_max)); attributes.recycle(); if (mIndeterminate) { mIndeterminateProgressDrawable = new IndeterminateProgressDrawable(mColor, mBorderWidth); mIndeterminateProgressDrawable.setCallback(this); } else { mDeterminateProgressDrawable = new DeterminateProgressDrawable(mColor, mBorderWidth, 0); mDeterminateProgressDrawable.setCallback(this); } }
Example 6
Source File: PullToRefreshListView.java From BigApp_Discuz_Android with Apache License 2.0 | 5 votes |
@Override protected void handleStyledAttributes(TypedArray a) { super.handleStyledAttributes(a); mListViewExtrasEnabled = a.getBoolean(R.styleable.PullToRefresh_ptrListViewExtrasEnabled, true); if (mListViewExtrasEnabled) { final FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL); // Create Loading Views ready for use later FrameLayout frame = new FrameLayout(getContext()); mHeaderLoadingView = createLoadingLayout(getContext(), Mode.PULL_FROM_START, a); mHeaderLoadingView.setVisibility(View.GONE); frame.addView(mHeaderLoadingView, lp); mRefreshableView.addHeaderView(frame, null, false); mLvFooterLoadingFrame = new FrameLayout(getContext()); mFooterLoadingView = createLoadingLayout(getContext(), Mode.PULL_FROM_END, a); mFooterLoadingView.setVisibility(View.GONE); mLvFooterLoadingFrame.addView(mFooterLoadingView, lp); /** * If the value for Scrolling While Refreshing hasn't been * explicitly set via XML, enable Scrolling While Refreshing. */ if (!a.hasValue(R.styleable.PullToRefresh_ptrScrollingWhileRefreshingEnabled)) { setScrollingWhileRefreshingEnabled(true); } } }
Example 7
Source File: ForegroundLinearLayout.java From ForegroundViews with Apache License 2.0 | 5 votes |
public ForegroundLinearLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ForegroundLayout, defStyle, 0); final Drawable d = a.getDrawable(R.styleable.ForegroundLayout_foreground); foregroundPadding = a.getBoolean(R.styleable.ForegroundLayout_foregroundInsidePadding, false); backgroundAsForeground = a.getBoolean(R.styleable.ForegroundLayout_backgroundAsForeground, false); // Apply foreground padding for ninepatches automatically if (!foregroundPadding && getBackground() instanceof NinePatchDrawable) { final NinePatchDrawable npd = (NinePatchDrawable) getBackground(); if (npd != null && npd.getPadding(rectPadding)) { foregroundPadding = true; } } final Drawable b = getBackground(); if (backgroundAsForeground && b != null) { setForeground(b); } else if (d != null) { setForeground(d); } a.recycle(); }
Example 8
Source File: ViewUtils.java From ncalc with GNU General Public License v3.0 | 5 votes |
public static boolean getBoolean(Context context, int attr, boolean def) { TypedValue typedValue = new TypedValue(); TypedArray a = context.obtainStyledAttributes(typedValue.data, new int[]{attr}); boolean value = a.getBoolean(0, def); a.recycle(); return value; }
Example 9
Source File: VMSquareLayout.java From VMLibrary with Apache License 2.0 | 5 votes |
/** * 获取资源属性 * * @param context * @param attrs */ private void handleAttrs(Context context, AttributeSet attrs) { if (attrs == null) { return; } TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.VMSquareLayout); isUnifyWidth = array.getBoolean(R.styleable.VMSquareLayout_vm_unify_width, true); }
Example 10
Source File: FloatingActionsMenu.java From UltimateRecyclerView with Apache License 2.0 | 5 votes |
private void init(Context context, AttributeSet attributeSet) { mAddButtonPlusColor = getColor(android.R.color.white); mAddButtonColorNormal = getColor(android.R.color.holo_blue_dark); mAddButtonColorPressed = getColor(android.R.color.holo_blue_light); mButtonSpacing = (int) (getResources().getDimension(R.dimen.fab_actions_spacing) - getResources().getDimension(R.dimen.fab_shadow_radius) - getResources().getDimension(R.dimen.fab_shadow_offset)); if (attributeSet != null) { TypedArray attr = context.obtainStyledAttributes(attributeSet, R.styleable.FloatingActionsMenu, 0, 0); if (attr != null) { try { mAddButtonPlusColor = attr.getColor(R.styleable.FloatingActionsMenu_addButtonPlusIconColor, getColor(android.R.color.white)); mAddButtonColorNormal = attr.getColor(R.styleable.FloatingActionsMenu_addButtonColorNormal, getColor(android.R.color.holo_blue_dark)); mAddButtonColorPressed = attr.getColor(R.styleable.FloatingActionsMenu_addButtonColorPressed, getColor(android.R.color.holo_blue_light)); isHorizontal = attr.getBoolean(R.styleable.FloatingActionsMenu_addButtonIsHorizontal, false); } finally { attr.recycle(); } } } WindowManager mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = mWindowManager.getDefaultDisplay(); Point size = new Point(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { display.getSize(size); mYHidden = size.y; } else mYHidden = display.getHeight(); createAddButton(context); }
Example 11
Source File: Luhn.java From Luhn with MIT License | 5 votes |
private void initStyle(int style) { TypedArray ta = obtainStyledAttributes(style, R.styleable.luhnStyle); String fontName = ta.getString(R.styleable.luhnStyle_luhn_typeface); String title = ta.getString(R.styleable.luhnStyle_luhn_title); includeCalligraphy(fontName); initViews(); retrievePin = ta.getBoolean(R.styleable.luhnStyle_luhn_show_pin, false); ((AppCompatTextView) findViewById(R.id.toolbar_title)).setText(TextUtils.isEmpty(title) ? "Add Card" : title); findViewById(R.id.btn_proceed).setBackground(ta.getDrawable(R.styleable.luhnStyle_luhn_btn_verify_selector)); findViewById(R.id.toolbar).setBackgroundColor(ta.getColor(R.styleable.luhnStyle_luhn_show_toolbar_color, ContextCompat.getColor(this, R.color.ln_colorPrimary))); }
Example 12
Source File: HeadsUpNotificationView.java From HeadsUp with GNU General Public License v2.0 | 5 votes |
public HeadsUpNotificationView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.HeadsUpNotificationView); mRipple = a.getBoolean(R.styleable.HeadsUpNotificationView_ripple, false); a.recycle(); mTimeout = new Timeout(); float densityScale = getResources().getDisplayMetrics().density; float pagingTouchSlop = ViewConfiguration.get(getContext()).getScaledPagingTouchSlop(); mSwipeHelperX = new SwipeHelper(SwipeHelper.X, this, densityScale, pagingTouchSlop); }
Example 13
Source File: ShowcaseView.java From UltimateAndroid with Apache License 2.0 | 5 votes |
private void updateStyle(TypedArray styled, boolean invalidate) { int backgroundColor = styled.getColor(R.styleable.ShowcaseView_sv_backgroundColor, Color.argb(128, 80, 80, 80)); int showcaseColor = styled.getColor(R.styleable.ShowcaseView_sv_showcaseColor, HOLO_BLUE); String buttonText = styled.getString(R.styleable.ShowcaseView_sv_buttonText); if (TextUtils.isEmpty(buttonText)) { buttonText ="ok"; } boolean tintButton = styled.getBoolean(R.styleable.ShowcaseView_sv_tintButtonColor, true); int titleTextAppearance = styled.getResourceId(R.styleable.ShowcaseView_sv_titleTextAppearance, R.style.TextAppearance_ShowcaseView_Title); int detailTextAppearance = styled.getResourceId(R.styleable.ShowcaseView_sv_detailTextAppearance, R.style.TextAppearance_ShowcaseView_Detail); styled.recycle(); showcaseDrawer.setShowcaseColour(showcaseColor); showcaseDrawer.setBackgroundColour(backgroundColor); tintButton(showcaseColor, tintButton); mEndButton.setText(buttonText); textDrawer.setTitleStyling(titleTextAppearance); textDrawer.setDetailStyling(detailTextAppearance); hasAlteredText = true; if (invalidate) { invalidate(); } }
Example 14
Source File: ViewPagerView.java From FastAccess with GNU General Public License v3.0 | 5 votes |
public ViewPagerView(Context context, AttributeSet attrs) { super(context, attrs); int[] attrsArray = {enabled}; TypedArray array = context.obtainStyledAttributes(attrs, attrsArray); isEnabled = array.getBoolean(0, true); array.recycle(); }
Example 15
Source File: BootstrapThumbnail.java From Android-Bootstrap with MIT License | 5 votes |
protected void initialise(AttributeSet attrs) { TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.BootstrapThumbnail); try { int typeOrdinal = a.getInt(R.styleable.BootstrapThumbnail_bootstrapBrand, -1); int sizeOrdinal = a.getInt(R.styleable.BootstrapThumbnail_bootstrapSize, -1); this.hasBorder = a.getBoolean(R.styleable.BootstrapCircleThumbnail_hasBorder, true); this.bootstrapSize = DefaultBootstrapSize.fromAttributeValue(sizeOrdinal).scaleFactor(); if (typeOrdinal == -1) { // override to use Primary for default border (looks nicer) this.bootstrapBrand = DefaultBootstrapBrand.PRIMARY; } else { this.bootstrapBrand = DefaultBootstrapBrand.fromAttributeValue(typeOrdinal); } } finally { a.recycle(); } placeholderPaint = new Paint(); placeholderPaint.setColor(ColorUtils.resolveColor(R.color.bootstrap_gray_light, getContext())); placeholderPaint.setStyle(Paint.Style.FILL); placeholderPaint.setAntiAlias(true); this.baselineCornerRadius = getResources().getDimension(R.dimen.bthumbnail_rounded_corner); this.baselineBorderWidth = getResources().getDimension(R.dimen.bthumbnail_default_border); setScaleType(ScaleType.CENTER_CROP); super.initialise(attrs); }
Example 16
Source File: OtpView.java From android-otpview-pinview with MIT License | 4 votes |
public OtpView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); final Resources res = getResources(); paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setStyle(Paint.Style.STROKE); animatorTextPaint.set(getPaint()); final Resources.Theme theme = context.getTheme(); TypedArray typedArray = theme.obtainStyledAttributes(attrs, R.styleable.OtpView, defStyleAttr, 0); viewType = typedArray.getInt(R.styleable.OtpView_viewType, VIEW_TYPE_NONE); otpViewItemCount = typedArray.getInt(R.styleable.OtpView_itemCount, DEFAULT_COUNT); otpViewItemHeight = (int) typedArray.getDimension(R.styleable.OtpView_itemHeight, res.getDimensionPixelSize(R.dimen.otp_view_item_size)); otpViewItemWidth = (int) typedArray.getDimension(R.styleable.OtpView_itemWidth, res.getDimensionPixelSize(R.dimen.otp_view_item_size)); otpViewItemSpacing = typedArray.getDimensionPixelSize(R.styleable.OtpView_itemSpacing, res.getDimensionPixelSize(R.dimen.otp_view_item_spacing)); otpViewItemRadius = (int) typedArray.getDimension(R.styleable.OtpView_itemRadius, 0); lineWidth = (int) typedArray.getDimension(R.styleable.OtpView_lineWidth, res.getDimensionPixelSize(R.dimen.otp_view_item_line_width)); lineColor = typedArray.getColorStateList(R.styleable.OtpView_lineColor); isCursorVisible = typedArray.getBoolean(R.styleable.OtpView_android_cursorVisible, true); cursorColor = typedArray.getColor(R.styleable.OtpView_cursorColor, getCurrentTextColor()); cursorWidth = typedArray.getDimensionPixelSize(R.styleable.OtpView_cursorWidth, res.getDimensionPixelSize(R.dimen.otp_view_cursor_width)); itemBackground = typedArray.getDrawable(R.styleable.OtpView_android_itemBackground); hideLineWhenFilled = typedArray.getBoolean(R.styleable.OtpView_hideLineWhenFilled, false); rtlTextDirection = typedArray.getBoolean(R.styleable.OtpView_rtlTextDirection, false); maskingChar = typedArray.getString(R.styleable.OtpView_maskingChar); typedArray.recycle(); if (lineColor != null) { cursorLineColor = lineColor.getDefaultColor(); } updateCursorHeight(); checkItemRadius(); setMaxLength(otpViewItemCount); paint.setStrokeWidth(lineWidth); setupAnimator(); super.setCursorVisible(false); setTextIsSelectable(false); }
Example 17
Source File: FABRevealMenu.java From FABRevealMenu-master with Apache License 2.0 | 4 votes |
private void initView(Context context, AttributeSet attrs) { mContext = context; //helper initialization viewHelper = new ViewHelper(context); animationHelper = new AnimationHelper(viewHelper); if (attrs != null) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.FABRevealMenu, 0, 0); //background mMenuBackground = a.getColor(R.styleable.FABRevealMenu_menuBackgroundColor, getColor(R.color.colorWhite)); mOverlayBackground = a.getColor(R.styleable.FABRevealMenu_overlayBackground, getColor(R.color.colorOverlayDark)); //menu mMenuRes = a.getResourceId(R.styleable.FABRevealMenu_menuRes, -1); //custom view int customView = a.getResourceId(R.styleable.FABRevealMenu_menuCustomView, -1); if (customView != -1) mCustomView = LayoutInflater.from(context).inflate(customView, null); //direction mDirection = Direction.fromId(a.getInt(R.styleable.FABRevealMenu_menuDirection, 0)); //title mTitleTextColor = a.getColor(R.styleable.FABRevealMenu_menuTitleTextColor, getColor(android.R.color.white)); mTitleDisabledTextColor = a.getColor(R.styleable.FABRevealMenu_menuTitleDisabledTextColor, getColor(android.R.color.darker_gray)); mShowTitle = a.getBoolean(R.styleable.FABRevealMenu_showTitle, true); mShowIcon = a.getBoolean(R.styleable.FABRevealMenu_showIcon, true); mShowOverlay = a.getBoolean(R.styleable.FABRevealMenu_showOverlay, true); //size mMenuSize = a.getInt(R.styleable.FABRevealMenu_menuSize, FAB_MENU_SIZE_NORMAL); //animation animateItems = a.getBoolean(R.styleable.FABRevealMenu_animateItems, true); //Font if (a.hasValue(R.styleable.FABRevealMenu_menuTitleFontFamily)) { int fontId = a.getResourceId(R.styleable.FABRevealMenu_menuTitleFontFamily, -1); if (fontId != -1) mMenuTitleTypeface = ResourcesCompat.getFont(context, fontId); } a.recycle(); //initialization if (mMenuRes != -1) { setMenu(mMenuRes); } else if (mCustomView != null) { setCustomView(mCustomView); } } }
Example 18
Source File: Kawaii_LoadingView.java From Kawaii_LoadingView with Apache License 2.0 | 4 votes |
/** * 步骤1:初始化动画的属性 */ private void initAttrs(Context context, AttributeSet attrs) { // 控件资源名称 TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.Kawaii_LoadingView); // 方块行数量(最少3行) lineNumber = typedArray.getInteger(R.styleable.Kawaii_LoadingView_lineNumber, 3); if (lineNumber < 3) { lineNumber = 3; } // 半个方块的宽度(dp) half_BlockWidth = typedArray.getDimension(R.styleable.Kawaii_LoadingView_half_BlockWidth, 30); // 方块间隔宽度(dp) blockInterval = typedArray.getDimension(R.styleable.Kawaii_LoadingView_blockInterval, 10); // 移动方块的圆角半径 moveBlock_Angle = typedArray.getFloat(R.styleable.Kawaii_LoadingView_moveBlock_Angle, 10); // 固定方块的圆角半径 fixBlock_Angle = typedArray.getFloat(R.styleable.Kawaii_LoadingView_fixBlock_Angle, 30); // 通过设置两个方块的圆角半径使得二者不同可以得到更好的动画效果哦 // 方块颜色(使用十六进制代码,如#333、#8e8e8e) int defaultColor = context.getResources().getColor(R.color.colorAccent); // 默认颜色 blockColor = typedArray.getColor(R.styleable.Kawaii_LoadingView_blockColor, defaultColor); // 移动方块的初始位置(即空白位置) initPosition = typedArray.getInteger(R.styleable.Kawaii_LoadingView_initPosition, 0); // 由于移动方块只能是外部方块,所以这里需要判断方块是否属于外部方块 -->关注1 if (isInsideTheRect(initPosition, lineNumber)) { initPosition = 0; } // 动画方向是否 = 顺时针旋转 isClock_Wise = typedArray.getBoolean(R.styleable.Kawaii_LoadingView_isClock_Wise, true); // 移动方块的移动速度 // 注:不建议使用者将速度调得过快 // 因为会导致ValueAnimator动画对象频繁重复的创建,存在内存抖动 moveSpeed = typedArray.getInteger(R.styleable.Kawaii_LoadingView_moveSpeed, 250); // 设置移动方块动画的插值器 int move_InterpolatorResId = typedArray.getResourceId(R.styleable.Kawaii_LoadingView_move_Interpolator, android.R.anim.linear_interpolator); move_Interpolator = AnimationUtils.loadInterpolator(context, move_InterpolatorResId); // 当方块移动后,需要实时更新的空白方块的位置 mCurrEmptyPosition = initPosition; // 释放资源 typedArray.recycle(); }
Example 19
Source File: SlidingUpPanelLayout.java From AndroidAnimationExercise with Apache License 2.0 | 4 votes |
public SlidingUpPanelLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); if (isInEditMode()) { mShadowDrawable = null; mDragHelper = null; return; } Interpolator scrollerInterpolator = null; if (attrs != null) { TypedArray defAttrs = context.obtainStyledAttributes(attrs, DEFAULT_ATTRS); if (defAttrs != null) { int gravity = defAttrs.getInt(0, Gravity.NO_GRAVITY); setGravity(gravity); defAttrs.recycle(); } TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.SlidingUpPanelLayout); if (ta != null) { mPanelHeight = ta.getDimensionPixelSize(R.styleable.SlidingUpPanelLayout_umanoPanelHeight, -1); mShadowHeight = ta.getDimensionPixelSize(R.styleable.SlidingUpPanelLayout_umanoShadowHeight, -1); mParallaxOffset = ta.getDimensionPixelSize(R.styleable.SlidingUpPanelLayout_umanoParallaxOffset, -1); mMinFlingVelocity = ta.getInt(R.styleable.SlidingUpPanelLayout_umanoFlingVelocity, DEFAULT_MIN_FLING_VELOCITY); mCoveredFadeColor = ta.getColor(R.styleable.SlidingUpPanelLayout_umanoFadeColor, DEFAULT_FADE_COLOR); mDragViewResId = ta.getResourceId(R.styleable.SlidingUpPanelLayout_umanoDragView, -1); mScrollableViewResId = ta.getResourceId(R.styleable.SlidingUpPanelLayout_umanoScrollableView, -1); mOverlayContent = ta.getBoolean(R.styleable.SlidingUpPanelLayout_umanoOverlay, DEFAULT_OVERLAY_FLAG); mClipPanel = ta.getBoolean(R.styleable.SlidingUpPanelLayout_umanoClipPanel, DEFAULT_CLIP_PANEL_FLAG); mAnchorPoint = ta.getFloat(R.styleable.SlidingUpPanelLayout_umanoAnchorPoint, DEFAULT_ANCHOR_POINT); mSlideState = PanelState.values()[ta.getInt(R.styleable.SlidingUpPanelLayout_umanoInitialState, DEFAULT_SLIDE_STATE.ordinal())]; int interpolatorResId = ta.getResourceId(R.styleable.SlidingUpPanelLayout_umanoScrollInterpolator, -1); if (interpolatorResId != -1) { scrollerInterpolator = AnimationUtils.loadInterpolator(context, interpolatorResId); } ta.recycle(); } } final float density = context.getResources().getDisplayMetrics().density; if (mPanelHeight == -1) { mPanelHeight = (int) (DEFAULT_PANEL_HEIGHT * density + 0.5f); } if (mShadowHeight == -1) { mShadowHeight = (int) (DEFAULT_SHADOW_HEIGHT * density + 0.5f); } if (mParallaxOffset == -1) { mParallaxOffset = (int) (DEFAULT_PARALLAX_OFFSET * density); } // If the shadow height is zero, don't show the shadow if (mShadowHeight > 0) { if (mIsSlidingUp) { mShadowDrawable = getResources().getDrawable(R.drawable.above_shadow); } else { mShadowDrawable = getResources().getDrawable(R.drawable.below_shadow); } } else { mShadowDrawable = null; } setWillNotDraw(false); mDragHelper = ViewDragHelper.create(this, 0.5f, scrollerInterpolator, new DragHelperCallback()); mDragHelper.setMinVelocity(mMinFlingVelocity * density); mIsTouchEnabled = true; }
Example 20
Source File: FloatingActionMenu.java From ShareBox with Apache License 2.0 | 4 votes |
private void init(Context context, AttributeSet attrs) { TypedArray attr = context.obtainStyledAttributes(attrs, R.styleable.FloatingActionMenu, 0, 0); mButtonSpacing = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_buttonSpacing, mButtonSpacing); mLabelsMargin = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_labels_margin, mLabelsMargin); mLabelsPosition = attr.getInt(R.styleable.FloatingActionMenu_menu_labels_position, LABELS_POSITION_LEFT); mLabelsShowAnimation = attr.getResourceId(R.styleable.FloatingActionMenu_menu_labels_showAnimation, mLabelsPosition == LABELS_POSITION_LEFT ? R.anim.fab_slide_in_from_right : R.anim.fab_slide_in_from_left); mLabelsHideAnimation = attr.getResourceId(R.styleable.FloatingActionMenu_menu_labels_hideAnimation, mLabelsPosition == LABELS_POSITION_LEFT ? R.anim.fab_slide_out_to_right : R.anim.fab_slide_out_to_left); mLabelsPaddingTop = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_labels_paddingTop, mLabelsPaddingTop); mLabelsPaddingRight = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_labels_paddingRight, mLabelsPaddingRight); mLabelsPaddingBottom = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_labels_paddingBottom, mLabelsPaddingBottom); mLabelsPaddingLeft = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_labels_paddingLeft, mLabelsPaddingLeft); mLabelsTextColor = attr.getColorStateList(R.styleable.FloatingActionMenu_menu_labels_textColor); // set default value if null same as for textview if (mLabelsTextColor == null) { mLabelsTextColor = ColorStateList.valueOf(Color.WHITE); } mLabelsTextSize = attr.getDimension(R.styleable.FloatingActionMenu_menu_labels_textSize, getResources().getDimension(R.dimen.labels_text_size)); mLabelsCornerRadius = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_labels_cornerRadius, mLabelsCornerRadius); mLabelsShowShadow = attr.getBoolean(R.styleable.FloatingActionMenu_menu_labels_showShadow, true); mLabelsColorNormal = attr.getColor(R.styleable.FloatingActionMenu_menu_labels_colorNormal, 0xFF333333); mLabelsColorPressed = attr.getColor(R.styleable.FloatingActionMenu_menu_labels_colorPressed, 0xFF444444); mLabelsColorRipple = attr.getColor(R.styleable.FloatingActionMenu_menu_labels_colorRipple, 0x66FFFFFF); mMenuShowShadow = attr.getBoolean(R.styleable.FloatingActionMenu_menu_showShadow, true); mMenuShadowColor = attr.getColor(R.styleable.FloatingActionMenu_menu_shadowColor, 0x66000000); mMenuShadowRadius = attr.getDimension(R.styleable.FloatingActionMenu_menu_shadowRadius, mMenuShadowRadius); mMenuShadowXOffset = attr.getDimension(R.styleable.FloatingActionMenu_menu_shadowXOffset, mMenuShadowXOffset); mMenuShadowYOffset = attr.getDimension(R.styleable.FloatingActionMenu_menu_shadowYOffset, mMenuShadowYOffset); mMenuColorNormal = attr.getColor(R.styleable.FloatingActionMenu_menu_colorNormal, 0xFFDA4336); mMenuColorPressed = attr.getColor(R.styleable.FloatingActionMenu_menu_colorPressed, 0xFFE75043); mMenuColorRipple = attr.getColor(R.styleable.FloatingActionMenu_menu_colorRipple, 0x99FFFFFF); mAnimationDelayPerItem = attr.getInt(R.styleable.FloatingActionMenu_menu_animationDelayPerItem, 50); mIcon = attr.getDrawable(R.styleable.FloatingActionMenu_menu_icon); if (mIcon == null) { mIcon = getResources().getDrawable(R.drawable.fab_add); } mLabelsSingleLine = attr.getBoolean(R.styleable.FloatingActionMenu_menu_labels_singleLine, false); mLabelsEllipsize = attr.getInt(R.styleable.FloatingActionMenu_menu_labels_ellipsize, 0); mLabelsMaxLines = attr.getInt(R.styleable.FloatingActionMenu_menu_labels_maxLines, -1); mMenuFabSize = attr.getInt(R.styleable.FloatingActionMenu_menu_fab_size, FloatingActionButton.SIZE_NORMAL); mLabelsStyle = attr.getResourceId(R.styleable.FloatingActionMenu_menu_labels_style, 0); String customFont = attr.getString(R.styleable.FloatingActionMenu_menu_labels_customFont); try { if (!TextUtils.isEmpty(customFont)) { mCustomTypefaceFromFont = Typeface.createFromAsset(getContext().getAssets(), customFont); } } catch (RuntimeException ex) { throw new IllegalArgumentException("Unable to load specified custom font: " + customFont, ex); } mOpenDirection = attr.getInt(R.styleable.FloatingActionMenu_menu_openDirection, OPEN_UP); mBackgroundColor = attr.getColor(R.styleable.FloatingActionMenu_menu_backgroundColor, Color.TRANSPARENT); if (attr.hasValue(R.styleable.FloatingActionMenu_menu_fab_label)) { mUsingMenuLabel = true; mMenuLabelText = attr.getString(R.styleable.FloatingActionMenu_menu_fab_label); } if (attr.hasValue(R.styleable.FloatingActionMenu_menu_labels_padding)) { int padding = attr.getDimensionPixelSize(R.styleable.FloatingActionMenu_menu_labels_padding, 0); initPadding(padding); } mOpenInterpolator = new OvershootInterpolator(); mCloseInterpolator = new AnticipateInterpolator(); mLabelsContext = new ContextThemeWrapper(getContext(), mLabelsStyle); initBackgroundDimAnimation(); createMenuButton(); initMenuButtonAnimations(attr); attr.recycle(); }