当前位置: 首页>>代码示例>>Java>>正文


Java Layout.getLineBottom方法代码示例

本文整理汇总了Java中android.text.Layout.getLineBottom方法的典型用法代码示例。如果您正苦于以下问题:Java Layout.getLineBottom方法的具体用法?Java Layout.getLineBottom怎么用?Java Layout.getLineBottom使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.text.Layout的用法示例。


在下文中一共展示了Layout.getLineBottom方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: findClosestLineBottom

import android.text.Layout; //导入方法依赖的package包/类
private int findClosestLineBottom( int ypos ) {
			
	Layout layout = this.childView.getLayout();
	
	if ( layout == null ) {
		return ypos;
	}
	
	int currentLine = layout.getLineForVertical(ypos);
	
	if ( currentLine > 0 ) {
		return layout.getLineBottom(currentLine -1);
	} else {
		return 0;
	}		
}
 
开发者ID:ceji-longquan,项目名称:ceji_android,代码行数:17,代码来源:ScrollingStrategy.java

示例2: getScreenCoordsForPos

import android.text.Layout; //导入方法依赖的package包/类
private float[] getScreenCoordsForPos(int line, int pos)
{
	LayoutManager manager = getLayoutManager();
	ViewHolder holder = findViewHolderForAdapterPosition(line);
	if(holder == null)
	{
		if(getChildCount() > 0 && getChildAdapterPosition(getChildAt(getChildCount() - 1)) < line)
			return new float[]{getWidth() / 2, getHeight(), 0};
		return new float[]{getWidth() / 2, 0, 0};
	}
	View view = manager.findViewByPosition(findViewHolderForAdapterPosition(line).getLayoutPosition());
	if(view == null)
		return new float[]{0, 0, 0};
	Layout layout = ((TextView)view).getLayout();
	float x = layout.getPrimaryHorizontal(pos);
	int ln = layout.getLineForOffset(pos);
	float y = (float)(layout.getLineTop(ln) + layout.getLineBottom(ln)) / 2;
	float screenX = x + view.getLeft() + getScrollX();
	float screenY = y + view.getTop() + getScrollY();
	if(screenY < 0)
		screenY = 0;
	if(screenY > getBottom())
		screenY = getBottom();
	return new float[]{screenX, screenY, layout.getLineBottom(ln) - y};
}
 
开发者ID:mniip,项目名称:bananapeel,代码行数:26,代码来源:SelectableScrollbackView.java

示例3: findClickableSpanUnderTouch

import android.text.Layout; //导入方法依赖的package包/类
private BetterLinkMovementExtended.ClickableSpanWithText findClickableSpanUnderTouch(TextView textView, Spannable text, MotionEvent event) {
    int touchX = (int) event.getX();
    int touchY = (int) event.getY();
    touchX -= textView.getTotalPaddingLeft();
    touchY -= textView.getTotalPaddingTop();
    touchX += textView.getScrollX();
    touchY += textView.getScrollY();
    Layout layout = textView.getLayout();
    int touchedLine = layout.getLineForVertical(touchY);
    int touchOffset = layout.getOffsetForHorizontal(touchedLine, (float) touchX);
    this.touchedLineBounds.left = layout.getLineLeft(touchedLine);
    this.touchedLineBounds.top = (float) layout.getLineTop(touchedLine);
    this.touchedLineBounds.right = layout.getLineWidth(touchedLine) + this.touchedLineBounds.left;
    this.touchedLineBounds.bottom = (float) layout.getLineBottom(touchedLine);
    if (this.touchedLineBounds.contains((float) touchX, (float) touchY)) {
        Object[] spans = text.getSpans(touchOffset, touchOffset, SPAN_CLASS);
        for (Object span : spans) {
            if (span instanceof ClickableSpan) {
                return ClickableSpanWithText.ofSpan(textView, (ClickableSpan) span);
            }
        }
        return null;
    } else {
        return null;
    }
}
 
开发者ID:duyp,项目名称:mvvm-template,代码行数:27,代码来源:BetterLinkMovementExtended.java

示例4: getFullyVisibleLinesCount

import android.text.Layout; //导入方法依赖的package包/类
/**
 * Get how many lines of text we can display so their full height is visible.
 */
private int getFullyVisibleLinesCount() {
    Layout layout = createWorkingLayout("");
    int height = getHeight() - getPaddingTop() - getPaddingBottom();
    int lineHeight = layout.getLineBottom(0);
    return height / lineHeight;
}
 
开发者ID:Ramotion,项目名称:showroom-android,代码行数:10,代码来源:EllipsizingTextView.java

示例5: updatePosition

import android.text.Layout; //导入方法依赖的package包/类
public void updatePosition() {

		if ( storedPosition == -1 && this.storedPercentage == -1d ) {
			return;  //Hopefully come back later
		}

		if ( childView.getText().length() == 0 ) {
			return;
		}

		if ( storedPercentage != -1d ) {
			this.storedPosition = (int) (this.childView.getText().length() * storedPercentage);
			this.storedPercentage = -1d;
		}

		Layout layout = this.childView.getLayout();

		if ( layout != null ) {
			int pos = Math.max(0, this.storedPosition);
			int line = layout.getLineForOffset(pos);

			if ( line > 0 ) {
				int newPos = layout.getLineBottom(line -1);
				bookView.scrollTo(0, newPos);
			} else {
				bookView.scrollTo(0, 0);
			}
		}						 
	}
 
开发者ID:ceji-longquan,项目名称:ceji_android,代码行数:30,代码来源:ScrollingStrategy.java

示例6: getTouchedSpan

import android.text.Layout; //导入方法依赖的package包/类
/**
 * Gets the span that was touched.
 * @param tv {@link TextView}
 * @param span {@link Spannable}
 * @param e {@link MotionEvent}
 * @return {@link TouchableSpan}
 */
private TouchableSpan getTouchedSpan(TextView tv, Spannable span, MotionEvent e) {
    // Find the location in which the touch was made
    int x = (int)e.getX();
    int y = (int)e.getY();

    // Ignore padding
    x -= tv.getTotalPaddingLeft();
    y -= tv.getTotalPaddingTop();

    // Account for scrollable text
    x += tv.getScrollX();
    y += tv.getScrollY();

    final Layout layout = tv.getLayout();
    final int touchedLine = layout.getLineForVertical(y);
    final int touchOffset = layout.getOffsetForHorizontal(touchedLine, x);

    // Set bounds of the touched line
    touchBounds.left = layout.getLineLeft(touchedLine);
    touchBounds.top = layout.getLineTop(touchedLine);
    touchBounds.right = layout.getLineRight(touchedLine);
    touchBounds.bottom = layout.getLineBottom(touchedLine);

    // Ensure the span falls within the bounds of the touch
    TouchableSpan touchSpan = null;
    if (touchBounds.contains(x, y)) {
        // Find clickable spans that lie under the touched area
        TouchableSpan[] spans = span.getSpans(touchOffset, touchOffset, TouchableSpan.class);
        touchSpan = (spans.length > 0) ? spans[0] : null;
    }

    return touchSpan;
}
 
开发者ID:tylersuehr7,项目名称:social-text-view,代码行数:41,代码来源:AccurateMovementMethod.java

示例7: isEventOnText

import android.text.Layout; //导入方法依赖的package包/类
/**
 * Check if event's coordinates are within line's text.
 *
 * Needed as getOffsetForHorizontal will return closest character,
 * which is an issue when clicking the empty space next to the text.
 */
private boolean isEventOnText(MotionEvent event, Layout layout, int line) {
    float left = layout.getLineLeft(line) + getTotalPaddingLeft();
    float right = layout.getLineRight(line) + getTotalPaddingRight();
    float bottom = layout.getLineBottom(line) + getTotalPaddingTop();
    float top = layout.getLineTop(line) + getTotalPaddingTop();

    return left <= event.getX() && event.getX() <= right &&
           top <= event.getY() && event.getY() <= bottom;
}
 
开发者ID:orgzly,项目名称:orgzly-android,代码行数:16,代码来源:TextViewWithLinks.java

示例8: computeMaxLineCount

import android.text.Layout; //导入方法依赖的package包/类
private int computeMaxLineCount(Layout layout) {
  int availableHeight = getMeasuredHeight() - getPaddingTop() - getPaddingBottom();
  for (int i = 0; i < layout.getLineCount(); i++) {
    if (availableHeight < layout.getLineBottom(i)) {
      return i;
    }
  }

  return layout.getLineCount();
}
 
开发者ID:fengdongfei,项目名称:CXJPadProject,代码行数:11,代码来源:EllipsizeTextView.java


注:本文中的android.text.Layout.getLineBottom方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。