如何更改在 layout.addview 上以编程方式添加的文本视图的大小



在下面的代码中,我以编程方式在layout.addview上添加了textview

textView = new TextView(Chat.this);
/*textView.setTypeface(null, Typeface.BOLD);*/
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimension(R.dimen.original));
textView.setText(message);
final ImageView imgView = new ImageView(Chat.this);
LinearLayout childLayout = new LinearLayout(Chat.this);
LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp2.setMargins(0, 0, 0, 0);
LinearLayout.LayoutParams LPimgView = new LinearLayout.LayoutParams(
100,
100 /*ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT*/);

我还实现了一个菜单,用户可以在其中选择通过选择给定的选项之一来调整屏幕上textviews的大小。 代码如下:

public void createDialogBoxWithRbutton(){
/*totalMsg = countChatWithMsg1 + countChatWithMsg2;*/
AlertDialog.Builder builder = new AlertDialog.Builder(Chat.this);
builder.setTitle("Select From the Options");
builder.setSingleChoiceItems(values, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
/*for(int i = 0; i < layout.getChildCount(); i++){
Toast.makeText(Chat.this, "Total messages: " + i, Toast.LENGTH_SHORT).show();
}*/
switch (item){
case 0:
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.font1));
/*textSize = 15;*/
break;
case 1:
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.font2));
/*textSize = 20;*/
break;
case 2:
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.font3));
/* textSize = 30;*/
break;
}
alertDialog1.dismiss();
}
});
alertDialog1 = builder.create();
alertDialog1.show();
}

但是发生的情况是,当我单击一个选项时,它只是正在更改的布局视图上最少textview。其他textview保持其大小。

这可能是什么原因?

您可以使用简单属性以编程方式设置文本大小

your_textview.setTextSize(24(;//in sp

最新更新