下面列出了怎么用android.support.annotation.Px的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void scrollTo(@Px int x, @Px int y) {
if (y < mMinPosition) {
goStartEdgeEffect(y);
y = mMinPosition;
}
if (y > mMaxPosition) {
goEndEdgeEffect(y);
y = mMaxPosition;
}
if (y != getScrollY()) {
super.scrollTo(x, y);
}
mCurrentScale = scrollYtoScale(y);
if (mRulerCallback != null) {
mRulerCallback.onScaleChanging(Math.round(mCurrentScale));
}
}
@Override
public void scrollTo(@Px int x, @Px int y) {
Log.i(TAG, "scrollTo x: " + x);
if (x < mMinPosition) {
goStartEdgeEffect(x);
x = mMinPosition;
}
if (x > mMaxPosition) {
goEndEdgeEffect(x);
x = mMaxPosition;
}
if (x != getScrollX()) {
super.scrollTo(x, y);
}
mCurrentScale = scrollXtoScale(x);
if (mRulerCallback != null) {
mRulerCallback.onScaleChanging(Math.round(mCurrentScale));
}
}
void setPadding( RecyclerView rv,
@Px int top,
@Px int bottom,
@Px int left,
@Px int right ){
rv.setClipToPadding( false );
rv.setScrollBarStyle( SCROLLBARS_OUTSIDE_OVERLAY );
rv.setPadding( left, top, right, bottom );
}
@Override
public void setPadding(@Px int left, @Px int top, @Px int right, @Px int bottom) {
if (mPager != null) {
mPager.setPadding(left, top, right, bottom);
} else {
// Pass to ourselves. We will remove it in the constructor.
super.setPadding(left, top, right, bottom);
}
}
@Override
public void setPadding(@Px int left, @Px int top, @Px int right, @Px int bottom) {
left += mShadowRadius;
top += mShadowRadius;
right += mShadowRadius;
bottom += mShadowRadius;
super.setPadding(left, top, right, bottom);
}
@Override
public void layout(@Px int l, @Px int t, @Px int r, @Px int b) {
TEST_STATS.layoutStart();
for (int i = 0; i < Const.LOOP_COUNT; i++) {
// TODO for test
super.layout(l, t, r, b);
}
TEST_STATS.layoutEnd();
}
@Override
public void layout(@Px int l, @Px int t, @Px int r, @Px int b) {
TEST_STATS.layoutStart();
for (int i = 0; i < Const.LOOP_COUNT; i++) {
// TODO for test
super.layout(l, t, r, b);
}
TEST_STATS.layoutEnd();
}
@Override
public void layout(@Px int l, @Px int t, @Px int r, @Px int b) {
TEST_STATS.layoutStart();
for (int i = 0; i < Const.LOOP_COUNT; i++) {
// TODO for test
super.layout(l, t, r, b);
}
TEST_STATS.layoutEnd();
}
@Px
static int getDimension(Context context,
TypedArray array,
@StyleableRes int attr,
@DimenRes int defaultDimenRes) {
return array.getDimensionPixelOffset(
attr, context.getResources().getDimensionPixelSize(defaultDimenRes));
}
private void matchMarginsToPadding(MarginLayoutParams layoutParams) {
@Px int leftMargin = orientation == LinearLayoutManager.VERTICAL ?
recyclerView.getPaddingLeft() : 0;
@Px int topMargin = orientation == LinearLayoutManager.VERTICAL ?
0 : recyclerView.getPaddingTop();
@Px int rightMargin = orientation == LinearLayoutManager.VERTICAL ?
recyclerView.getPaddingRight() : 0;
layoutParams.setMargins(leftMargin, topMargin, rightMargin, 0);
}
private void matchMarginsToPadding(MarginLayoutParams layoutParams) {
@Px int leftMargin = orientation == LinearLayoutManager.VERTICAL ? mRecyclerView.getPaddingLeft() : 0;
@Px int topMargin = orientation == LinearLayoutManager.VERTICAL ? 0 : mRecyclerView.getPaddingTop();
@Px int rightMargin = orientation == LinearLayoutManager.VERTICAL ? mRecyclerView.getPaddingRight() : 0;
layoutParams.setMargins(leftMargin, topMargin, rightMargin, 0);
}
/**
* Sets a new value for the thickness of the lines between the nodes.
*
* @param lineThickness new value for the thickness
*/
public void setLineThickness(@Px int lineThickness) {
this.lineThickness = lineThickness;
initPaint();
invalidate();
}
public RecyclerWidget<V> smoothScrollBy(@Px int dx, @Px int dy) {
view.smoothScrollBy(dx, dy);
return self();
}
public RecyclerWidget<V> smoothScrollBy(@Px int dx, @Px int dy, @Nullable Interpolator interpolator) {
view.smoothScrollBy(dx, dy, interpolator);
return self();
}
public RecyclerWidget<V> offsetChildrenVertical(@Px int dy) {
view.offsetChildrenVertical(dy);
return self();
}
public RecyclerWidget<V> offsetChildrenHorizontal(@Px int dx) {
view.offsetChildrenHorizontal(dx);
return self();
}
BaseLayoutMargin( int spanCount, @Px int spacing ){
this.spanCount = spanCount;
this.spacing = spacing;
this.marginDelegate = new MarginDelegate( spanCount, spacing );
}
void setPadding( RecyclerView rv, @Px int margin ){
this.setPadding( rv, margin, margin, margin, margin );
}
MarginDelegate( int spanCount, @Px int spaceItem ){
this.spanCount = spanCount;
this.spaceItem = spaceItem;
}
public LayoutMarginDecoration( @Px int spacing ){
super( 1, spacing );
}
public LayoutMarginDecoration( int spanCount, @Px int spacing ){
super( spanCount, spacing );
}
@Override
public void setPadding( RecyclerView rv, @Px int margin ){
super.setPadding( rv, margin );
}
@Override
public void setPadding( RecyclerView rv, @Px int top, @Px int bottom, @Px int left, @Px int right ){
super.setPadding( rv, top, bottom, left, right );
}
private void setUpEmojiPopup() {
emojiPopup = EmojiPopup.Builder.fromRootView(rootView)
.setOnEmojiBackspaceClickListener(new OnEmojiBackspaceClickListener() {
@Override
public void onEmojiBackspaceClick(final View v) {
Log.d(TAG, "Clicked on Backspace");
}
})
.setOnEmojiClickListener(new OnEmojiClickListener() {
@Override
public void onEmojiClick(@NonNull final EmojiImageView imageView, @NonNull final Emoji emoji) {
Log.d(TAG, "Clicked on emoji");
}
})
.setOnEmojiPopupShownListener(new OnEmojiPopupShownListener() {
@Override
public void onEmojiPopupShown() {
emojiButton.setImageResource(R.drawable.ic_keyboard_24dp);
}
})
.setOnSoftKeyboardOpenListener(new OnSoftKeyboardOpenListener() {
@Override
public void onKeyboardOpen(@Px final int keyBoardHeight) {
Log.d(TAG, "Opened soft keyboard");
}
})
// .setOnEmojiPopupDismissListener(new OnEmojiPopupDismissListener() {
// @Override
// public void onEmojiPopupDismiss() {
// emojiButton.setImageResource(R.drawable.emoji_ios_category_people);
// }
// })
.setOnEmojiPopupDismissListener(new OnEmojiPopupDismissListener() {
@Override
public void onEmojiPopupDismiss() {
emojiButton.setImageResource(R.drawable.emoji_ios_category_people);
}
})
.setOnSoftKeyboardCloseListener(new OnSoftKeyboardCloseListener() {
@Override
public void onKeyboardClose() {
Log.d(TAG, "Closed soft keyboard");
}
})
.build(editText);
}
public static Node absoluteSize(@Px Integer size, Object... nodes) {
return new SpanNode(new AbsoluteSizeSpan(size), nodes);
}
public static Node absoluteSize(@Px Integer size, Boolean dip, Object... nodes) {
return new SpanNode(new AbsoluteSizeSpan(size, dip), nodes);
}
public static Node bullet(@Px Integer gapWidth, Object... nodes) {
return new SpanNode(new BulletSpan(gapWidth), nodes);
}
public static Node drawableMargin(Drawable drawable, @Px Integer padding, Object... nodes) {
return new SpanNode(new DrawableMarginSpan(drawable, padding), nodes);
}
public static Node iconMargin(Bitmap bitmap, @Px Integer padding, Object... nodes) {
return new SpanNode(new IconMarginSpan(bitmap, padding), nodes);
}
public void setBubbleBorderWidth(@Px int width) {
this.bubbleBorderWidth = width;
invalidate();
}