/**
* Accounting for the settings of {@link Gravity} and {@link Orientation}, find the center point
* around which this layout manager should arrange list items. Place the resulting coordinates
* into {@code out}, to avoid reallocation.
*/
private Point deriveCenter(@Gravity int gravity,
int orientation,
@Dimension int radius,
@Dimension int peekDistance,
Point out) {
final int gravitySign = gravity == Gravity.START ? -1 : 1;
final int distanceMultiplier = gravity == Gravity.START ? 0 : 1;
int x, y;
switch (orientation) {
case Orientation.HORIZONTAL:
y = (distanceMultiplier * getHeight()) + gravitySign * (Math.abs(radius - peekDistance));
x = getWidth() / 2;
break;
case Orientation.VERTICAL:
default:
y = getHeight() / 2;
x = (distanceMultiplier * getWidth()) + gravitySign * (Math.abs(radius - peekDistance));
break;
}
out.set(x, y);
return out;
}
java类android.support.annotation.Dimension的实例源码
TurnLayoutManager.java 文件源码
项目:turn-layout-manager
阅读 44
收藏 0
点赞 0
评论 0
TurnLayoutManager.java 文件源码
项目:turn-layout-manager
阅读 41
收藏 0
点赞 0
评论 0
/**
* Set bumper offsets on child views for {@link Orientation#HORIZONTAL}
*/
private void setChildOffsetsHorizontal(@Gravity int gravity,
@Dimension int radius,
Point center,
int peekDistance) {
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
final int yOffset = (int) resolveOffsetY(radius, child.getX() + child.getWidth() / 2, center, peekDistance);
final int y = gravity == Gravity.START ? yOffset + layoutParams.getMarginStart()
: getHeight() - yOffset - child.getHeight() - layoutParams.getMarginStart();
child.layout(child.getLeft(), y, child.getRight(), child.getHeight() + y);
setChildRotationHorizontal(gravity, child, radius, center);
}
}
TurnLayoutManager.java 文件源码
项目:RLibrary
阅读 44
收藏 0
点赞 0
评论 0
/**
* Accounting for the settings of {@link Gravity} and {@link Orientation}, find the center point
* around which this layout manager should arrange list items. Place the resulting coordinates
* into {@code out}, to avoid reallocation.
*/
private Point deriveCenter(@Gravity int gravity,
int orientation,
@Dimension int radius,
@Dimension int peekDistance,
Point out) {
final int gravitySign = gravity == Gravity.START ? -1 : 1;
final int distanceMultiplier = gravity == Gravity.START ? 0 : 1;
int x, y;
switch (orientation) {
case Orientation.HORIZONTAL:
y = (distanceMultiplier * getHeight()) + gravitySign * (Math.abs(radius - peekDistance));
x = getWidth() / 2;
break;
case Orientation.VERTICAL:
default:
y = getHeight() / 2;
x = (distanceMultiplier * getWidth()) + gravitySign * (Math.abs(radius - peekDistance));
break;
}
out.set(x, y);
return out;
}
TurnLayoutManager.java 文件源码
项目:RLibrary
阅读 38
收藏 0
点赞 0
评论 0
/**
* Set bumper offsets on child views for {@link Orientation#HORIZONTAL}
*/
private void setChildOffsetsHorizontal(@Gravity int gravity,
@Dimension int radius,
Point center,
int peekDistance) {
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
final int yOffset = (int) resolveOffsetY(radius, child.getX() + child.getWidth() / 2, center, peekDistance);
final int y = gravity == Gravity.START ? yOffset + layoutParams.getMarginStart()
: getHeight() - yOffset - child.getHeight() - layoutParams.getMarginStart();
child.layout(child.getLeft(), y, child.getRight(), child.getHeight() + y);
setChildRotationHorizontal(gravity, child, radius, center);
}
}
DisplayUtils.java 文件源码
项目:amplify
阅读 41
收藏 0
点赞 0
评论 0
@Px
public static int dpToPx(@NonNull final Context context, @Dimension(unit = DP) final int dp) {
if (dp < 0) {
throw new IllegalStateException("Dimension must be > 0.");
}
if (dp == 0) {
return 0;
}
final Resources resources = context.getResources();
final DisplayMetrics displayMetrics = resources.getDisplayMetrics();
final float floatResult = dp * ((float) displayMetrics.densityDpi / DENSITY_DEFAULT);
return max(1, round(floatResult));
}
PatternLockView.java 文件源码
项目:PatternLockView
阅读 42
收藏 0
点赞 0
评论 0
public void setDotNormalSize(@Dimension int dotNormalSize) {
mDotNormalSize = dotNormalSize;
for (int i = 0; i < sDotCount; i++) {
for (int j = 0; j < sDotCount; j++) {
mDotStates[i][j] = new DotState();
mDotStates[i][j].mSize = mDotNormalSize;
}
}
invalidate();
}
TurnLayoutManager.java 文件源码
项目:turn-layout-manager
阅读 48
收藏 0
点赞 0
评论 0
/**
* Traffic method to divert calls based on {@link Orientation}.
*
* @see #setChildOffsetsVertical(int, int, Point, int)
* @see #setChildOffsetsHorizontal(int, int, Point, int)
*/
private void setChildOffsets(@Gravity int gravity,
int orientation,
@Dimension int radius,
Point center,
int peekDistance) {
if (orientation == VERTICAL) {
setChildOffsetsVertical(gravity, radius, center, peekDistance);
} else if (orientation == HORIZONTAL) {
setChildOffsetsHorizontal(gravity, radius, center, peekDistance);
}
}
TurnLayoutManager.java 文件源码
项目:turn-layout-manager
阅读 39
收藏 0
点赞 0
评论 0
/**
* Set the bumper offsets on child views for {@link Orientation#VERTICAL}
*/
private void setChildOffsetsVertical(@Gravity int gravity,
@Dimension int radius,
Point center,
int peekDistance) {
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
final int xOffset = (int) resolveOffsetX(radius, child.getY() + child.getHeight() / 2, center, peekDistance);
final int x = gravity == Gravity.START ? xOffset + layoutParams.getMarginStart()
: getWidth() - xOffset - child.getWidth() - layoutParams.getMarginStart();
child.layout(x, child.getTop(), child.getWidth() + x, child.getBottom());
setChildRotationVertical(gravity, child, radius, center);
}
}
ResHelper.java 文件源码
项目:SingleSelectBar
阅读 40
收藏 0
点赞 0
评论 0
boolean setTabStrokeWidth(@Dimension int strokeWidth) {
boolean hasChanged = false;
if (this.strokeWidth != strokeWidth) {
this.strokeWidth = strokeWidth;
updateCornerStateDrawable();
hasChanged = true;
}
return hasChanged;
}
SingleSelectBar.java 文件源码
项目:SingleSelectBar
阅读 46
收藏 0
点赞 0
评论 0
/**
* Set a dimension for border and divider.
*
* @param width The width of border and divider.
*/
public void setTabStrokeWidth(@Dimension int width) {
if (resHelper.setTabStrokeWidth(width)) {
updateBackground();
invalidate();
}
}
IU_Utils.java 文件源码
项目:Customerly-Android-SDK
阅读 42
收藏 0
点赞 0
评论 0
@Contract(pure = true)
@Px static int px(@Dimension(unit = Dimension.DP) int dp) {
float dpi = Resources.getSystem().getDisplayMetrics().density;
dpi = dpi > 100/*120, 160, 213, 240, 320, 480 or 640 dpi*/ ? dpi / 160f : dpi;
dpi = dpi == 0 ? 1f : dpi;
return (int) (dp * dpi);
}
TurnLayoutManager.java 文件源码
项目:RLibrary
阅读 36
收藏 0
点赞 0
评论 0
/**
* Traffic method to divert calls based on {@link Orientation}.
*
* @see #setChildOffsetsVertical(int, int, Point, int)
* @see #setChildOffsetsHorizontal(int, int, Point, int)
*/
private void setChildOffsets(@Gravity int gravity,
int orientation,
@Dimension int radius,
Point center,
int peekDistance) {
if (orientation == VERTICAL) {
setChildOffsetsVertical(gravity, radius, center, peekDistance);
} else if (orientation == HORIZONTAL) {
setChildOffsetsHorizontal(gravity, radius, center, peekDistance);
}
}
TurnLayoutManager.java 文件源码
项目:RLibrary
阅读 47
收藏 0
点赞 0
评论 0
/**
* Set the bumper offsets on child views for {@link Orientation#VERTICAL}
*/
private void setChildOffsetsVertical(@Gravity int gravity,
@Dimension int radius,
Point center,
int peekDistance) {
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
final int xOffset = (int) resolveOffsetX(radius, child.getY() + child.getHeight() / 2, center, peekDistance);
final int x = gravity == Gravity.START ? xOffset + layoutParams.getMarginStart()
: getWidth() - xOffset - child.getWidth() - layoutParams.getMarginStart();
child.layout(x, child.getTop(), child.getWidth() + x, child.getBottom());
setChildRotationVertical(gravity, child, radius, center);
}
}
MiscUtils.java 文件源码
项目:BottomBar
阅读 42
收藏 0
点赞 0
评论 0
/**
* Converts dps to pixels nicely.
*
* @param context the Context for getting the resources
* @param dp dimension in dps
* @return dimension in pixels
*/
protected static int dpToPixel(@NonNull Context context, @Dimension(unit = DP) float dp) {
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
try {
return (int) (dp * metrics.density);
} catch (NoSuchFieldError ignored) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics);
}
}
MetricsHelper.java 文件源码
项目:bigbang
阅读 45
收藏 0
点赞 0
评论 0
/**
* Retrieves the toolbar height of the current app theme.
*
* @param theme the device {@link Theme}
* @param actionBarSize the current {@link ActionBar} size
* @return the toolbar height of the current app theme
*/
@Dimension(unit = Dimension.DP)
public static int getToolbarHeight(@NonNull Theme theme, @AttrRes int actionBarSize) {
final TypedArray styledAttributes = theme.obtainStyledAttributes(new int[] {actionBarSize});
int toolbarHeight = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();
return toolbarHeight;
}
InsetItemDecoration.java 文件源码
项目:groupie
阅读 63
收藏 0
点赞 0
评论 0
public InsetItemDecoration(@ColorInt int backgroundColor, @Dimension int padding, String key, String value) {
this.key = key;
this.value = value;
paint = new Paint();
paint.setColor(backgroundColor);
this.padding = padding;
}
CommentWidget.java 文件源码
项目:aptoide-client-v8
阅读 45
收藏 0
点赞 0
评论 0
private void setLayoutLeftPadding(ComplexComment complexComment) {
final int level = complexComment.getLevel();
int baseMargin =
AptoideUtils.ScreenU.getPixelsForDip(MARGIN_IN_DIP, getContext().getResources());
@Dimension int leftMargin = level < 2 ? baseMargin : baseMargin * level;
outerLayout.setPadding(leftMargin, outerLayout.getPaddingTop(), baseMargin,
outerLayout.getPaddingBottom());
}
PromptOptions.java 文件源码
项目:MaterialTapTargetPrompt
阅读 37
收藏 0
点赞 0
评论 0
/**
* Set the primary text font size.
*
* @param size The primary text font size
* @return This Builder object to allow for chaining of calls to set methods
*/
@NonNull
public T setPrimaryTextSize(@Dimension final float size)
{
mPrimaryTextSize = size;
return (T) this;
}
PromptOptions.java 文件源码
项目:MaterialTapTargetPrompt
阅读 53
收藏 0
点赞 0
评论 0
/**
* Set the secondary text font size.
*
* @param size The secondary text font size
* @return This Builder object to allow for chaining of calls to set methods
*/
@NonNull
public T setSecondaryTextSize(@Dimension final float size)
{
mSecondaryTextSize = size;
return (T) this;
}
PromptOptions.java 文件源码
项目:MaterialTapTargetPrompt
阅读 49
收藏 0
点赞 0
评论 0
/**
* Set the text left and right padding.
*
* @param padding The padding on the text left and right
* @return This Builder object to allow for chaining of calls to set methods
*/
@NonNull
public T setTextPadding(@Dimension final float padding)
{
mTextPadding = padding;
return (T) this;
}
PromptOptions.java 文件源码
项目:MaterialTapTargetPrompt
阅读 46
收藏 0
点赞 0
评论 0
/**
* Set the distance between the primary and secondary text.
*
* @param separation The distance separation between the primary and secondary text
* @return This Builder object to allow for chaining of calls to set methods
*/
@NonNull
public T setTextSeparation(@Dimension final float separation)
{
mTextSeparation = separation;
return (T) this;
}
PromptOptions.java 文件源码
项目:MaterialTapTargetPrompt
阅读 39
收藏 0
点赞 0
评论 0
/**
* Set the padding between the text and the focal point.
*
* @param padding The distance between the text and focal
* @return This Builder object to allow for chaining of calls to set methods
*/
@NonNull
public T setFocalPadding(@Dimension final float padding)
{
mFocalPadding = padding;
return (T) this;
}
PromptOptions.java 文件源码
项目:MaterialTapTargetPrompt
阅读 40
收藏 0
点赞 0
评论 0
/**
* Set the max width that the primary and secondary text can be.
*
* @param width The max width that the text can reach
* @return This Builder object to allow for chaining of calls to set methods
*/
@NonNull
public T setMaxTextWidth(@Dimension final float width)
{
mMaxTextWidth = width;
return (T) this;
}
PromptOptions.java 文件源码
项目:MaterialTapTargetPrompt
阅读 40
收藏 0
点赞 0
评论 0
/**
* Set the focal point radius.
*
* @param radius The focal radius
* @return This Builder object to allow for chaining of calls to set methods
*/
@NonNull
public T setFocalRadius(@Dimension final float radius)
{
mFocalRadius = radius;
return (T) this;
}
RectanglePromptFocal.java 文件源码
项目:MaterialTapTargetPrompt
阅读 51
收藏 0
点赞 0
评论 0
/**
* Set the padding between the target bounds and the rectangle edge.
*
* @param padding The distance from the target edge to the rectangle edge.
* @return This prompt focal.
*/
@NonNull
public RectanglePromptFocal setTargetPadding(@Dimension final float padding)
{
mPadding = padding;
return this;
}
ChipGroup.java 文件源码
项目:material-components-android
阅读 42
收藏 0
点赞 0
评论 0
/** Sets the horizontal spacing between chips in this group. */
public void setChipSpacingHorizontal(@Dimension int chipSpacingHorizontal) {
if (this.chipSpacingHorizontal != chipSpacingHorizontal) {
this.chipSpacingHorizontal = chipSpacingHorizontal;
requestLayout();
}
}
ChipGroup.java 文件源码
项目:material-components-android
阅读 41
收藏 0
点赞 0
评论 0
/** Sets the vertical spacing between chips in this group. */
public void setChipSpacingVertical(@Dimension int chipSpacingVertical) {
if (this.chipSpacingVertical != chipSpacingVertical) {
this.chipSpacingVertical = chipSpacingVertical;
requestLayout();
}
}
TabLayout.java 文件源码
项目:material-components-android
阅读 46
收藏 0
点赞 0
评论 0
@Dimension(unit = Dimension.DP)
private int getDefaultHeight() {
boolean hasIconAndText = false;
for (int i = 0, count = tabs.size(); i < count; i++) {
Tab tab = tabs.get(i);
if (tab != null && tab.getIcon() != null && !TextUtils.isEmpty(tab.getText())) {
hasIconAndText = true;
break;
}
}
return (hasIconAndText && !inlineLabel) ? DEFAULT_HEIGHT_WITH_TEXT_ICON : DEFAULT_HEIGHT;
}
IU_Utils.java 文件源码
项目:Customerly-Android-SDK
阅读 55
收藏 0
点赞 0
评论 0
@Contract(pure = true)
@Px static int px(@Dimension(unit = Dimension.DP) int dp) {
float dpi = Resources.getSystem().getDisplayMetrics().density;
dpi = dpi > 100/*120, 160, 213, 240, 320, 480 or 640 dpi*/ ? dpi / 160f : dpi;
dpi = dpi == 0 ? 1f : dpi;
return (int) (dp * dpi);
}
InsetDividerDecoration.java 文件源码
项目:plaid
阅读 41
收藏 0
点赞 0
评论 0
public InsetDividerDecoration(@Dimension int dividerHeight,
@Dimension int leftInset,
@ColorInt int dividerColor) {
inset = leftInset;
height = dividerHeight;
paint = new Paint();
paint.setColor(dividerColor);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(dividerHeight);
}