繪製多行我試圖繪製的EditText線。我有一個滾動視圖內這是在EDITTEXT線editText.When數目是小於可容納鑑於總的可能行,我仍然要繪製爲存在於EDITTEXT文本已經畫出的線條後左行。中的EditText
例如,假設如果沒有在EditText上線的3個則只有3線繪製。但我想在整個在這種情況下視圖中繪製線條。
我已經寫了下面的代碼,但它只是畫線高達文本的高度不超過that.It將是一個很大的幫助,如果有人可以幫助它。
public class DisplayActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
final TextView textView_header = (TextView) findViewById(R.id.header);
final String randomText = getIntent().getExtras().getString("Data");
int index = Integer.parseInt(randomText);
int pos = MainActivity.keyList.get(index);
final String text = MainActivity.settings.getString("data" + pos, "");
final String text_2 = MainActivity.settings_2.getString("data" + pos,
"");
textView_header.setText(text);
LayoutParams textViewLayoutParams = new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
LinearLayout ll = (LinearLayout) findViewById(R.id.editText_layout);
ScrollView sv = new ScrollView(this);
sv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
LinedEditText et = new LinedEditText(this, null);
et.setLayoutParams(textViewLayoutParams);
et.setText(text_2);
et.setKeyListener(null);
et.setEnabled(false);
et.setTextColor(Color.BLACK);
et.setBackgroundColor(Color.TRANSPARENT);
sv.addView(et);
ll.addView(sv);
}
public class LinedEditText extends EditText {
private Rect mRect;
private Paint mPaint;
public LinedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Color.GRAY);
}
@Override
protected void onDraw(Canvas canvas) {
int height = getHeight();
int line_height = getLineHeight();
int count = height/line_height;
if (getLineCount() > count)
count = getLineCount();// for long text with scrolling
Rect r = mRect;
Paint paint = mPaint;
int baseline = getLineBounds(0, r);// first line
for (int i = 0; i < count; i++) {
canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1,
paint);
baseline += getLineHeight();// next line
}
super.onDraw(canvas);
}
}
}
這是我的活動
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/page2"
tools:context="com.example.writenote.DisplayActivity" >
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="140px" />
<LinearLayout
android:id="@+id/editText_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/line"
android:layout_marginTop="0px"
android:orientation="vertical" />
<TextView
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_below="@+id/header"
android:layout_marginLeft="20px"
android:layout_marginRight="5px"
android:layout_marginTop="10dp"
android:background="#a9a9a9" />
<TextView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView"
android:layout_marginLeft="30px"
android:layout_marginRight="25px"
android:layout_marginTop="30px"
android:text="hello"
android:textColor="#000"
android:textSize="60px" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="260px"
android:layout_height="260px"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/circleedit" />
</RelativeLayout>
XML佈局,我認爲這個問題是在的getHeight(),這是在onDraw有。它正在返回由三行組成的editext的高度。有沒有辦法提供包含edittext的linearlayout的高度?我試圖提供的LinearLayout的高度的onDraw方法,但沒有效果,它仍然繪製3條線。 我試圖做到這一點的onDraw方法
//ll is linearLayout
int height = ll.getHeight();