![](/img/trans.png)
[英]Get exact width of a textview in pixel programmatically (Android)
[英]How to increase TextView size and get width of it in for loop, Android
當按鈕單擊 for 循環開始並進入 for 循環時,我正在增加文本大小並記錄 TextView 的寬度。 但它並沒有增加大小並且總是獲得相同的寬度(檢查下面添加的日志)。 我添加了我的完整代碼。 如何解決這個問題?
activity_main.xml
<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"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@color/colorPrimary"
android:fontFamily="@font/roboto"
android:text="00:00" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:onClick="ocBtnIncrease"
android:text="Increase" />
</RelativeLayout>
MainActivity.java
package com.example.test;
import android.os.Bundle;
import android.os.SystemClock;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
public static final String TAG = MainActivity.class.getSimpleName();
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = findViewById(R.id.tv);
}
public void ocBtnIncrease(View view) {
for (int i = 1; i < 500; i++) {
tv.setTextSize(i);
Log.i(TAG, "i: " + i);
Log.i(TAG, "WIDTH: " + tv.getWidth());
SystemClock.sleep(500);
}
}
}
日志
I/MainActivity: i: 1
I/MainActivity: WIDTH: 71
I/MainActivity: i: 2
I/MainActivity: WIDTH: 71
I/MainActivity: i: 3
I/MainActivity: WIDTH: 71
I/MainActivity: i: 4
.
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.