如何控制自定义按钮class中的按钮文字大小?
How can control button Text Size in customized Button class?
我的 activity 中有一些按钮是从自定义 class 膨胀而来的,它们使按钮完全呈正方形,并根据屏幕尺寸将它们放入父级中,并且工作正常:
public class MyButton extends Button {
public MyButton(Context context) {
super(context);
}
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
int size = width > height ? height : width;
setMeasuredDimension(size, size); // make it square
}
}
这是我的充气机:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Button newGuessButton = (Button) inflater.inflate(R.layout.my_button, currentTableRow, false);
currentView.addView(newGuessButton);
和layout.xml:
<my.package.name.MyButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/newButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="100"/>
我的问题是如何在我的按钮中设置文本大小以根据需要更改默认大小。我想我必须先设置它,然后再将其添加为视图,但我不知道如何设置?
如果您只想设置文字大小,您可以使用属性
android:textSize
或使用方法
Button.setTextSize()
如果你想让文本适合按钮,你可以检查这个answer
谢谢大家,不过我找到了一个非官方way:As我告诉了,我的定制class(最后)给我一些填充父屏幕的按钮,并取决于我想在一行中创建多少按钮以及屏幕的宽度尺寸或高度尺寸(我们需要较小的)我们可以找到最接近的数字那个将像这样创建:(我想连续创建 5 个方形按钮)
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
Resources resources = getApplicationContext().getResources();
scale = resources.getDisplayMetrics().density;
display.getSize(size);
int width = size.x;
int tempSize = width / 5;// (5: number of buttons)
float ff = (float) ((tempSize * 0.4) / (scale));// (0.4: for example)
....
newGuessButton.setTextSize(ff);
currentView.addView(newGuessButton);
我的 activity 中有一些按钮是从自定义 class 膨胀而来的,它们使按钮完全呈正方形,并根据屏幕尺寸将它们放入父级中,并且工作正常:
public class MyButton extends Button {
public MyButton(Context context) {
super(context);
}
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
int size = width > height ? height : width;
setMeasuredDimension(size, size); // make it square
}
}
这是我的充气机:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Button newGuessButton = (Button) inflater.inflate(R.layout.my_button, currentTableRow, false);
currentView.addView(newGuessButton);
和layout.xml:
<my.package.name.MyButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/newButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="100"/>
我的问题是如何在我的按钮中设置文本大小以根据需要更改默认大小。我想我必须先设置它,然后再将其添加为视图,但我不知道如何设置?
如果您只想设置文字大小,您可以使用属性
android:textSize
或使用方法
Button.setTextSize()
如果你想让文本适合按钮,你可以检查这个answer
谢谢大家,不过我找到了一个非官方way:As我告诉了,我的定制class(最后)给我一些填充父屏幕的按钮,并取决于我想在一行中创建多少按钮以及屏幕的宽度尺寸或高度尺寸(我们需要较小的)我们可以找到最接近的数字那个将像这样创建:(我想连续创建 5 个方形按钮)
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
Resources resources = getApplicationContext().getResources();
scale = resources.getDisplayMetrics().density;
display.getSize(size);
int width = size.x;
int tempSize = width / 5;// (5: number of buttons)
float ff = (float) ((tempSize * 0.4) / (scale));// (0.4: for example)
....
newGuessButton.setTextSize(ff);
currentView.addView(newGuessButton);