这里我输入了2个按钮的代码。
我必须面对一个问题。按钮在MDPI视图中正常工作,但我在QVGA仿真器中遇到问题。
在QVGA中,当我按下plus
按钮时,其尺寸会减小y,当我按下minus
按钮时,不会发生任何变化
if(v==im7)
{
float size=tx3.getTextSize();
float size1=tx2.getTextSize();
Toast.makeText(this,"plus"+String.valueOf(size),2000).show();
size=size+1;
size1=size1+1;
tx3.setTextSize(size);
tx2.setTextSize(size1);
}
if(v==im8)
{
/*float size=tx3.getTextSize();
float size1=tx2.getTextSize();
*/
Toast.makeText(this,"minus"+String.valueOf(size),2000).show();
size=size-1;
size1=size1-1;
tx3.setTextSize(size);
tx2.setTextSize(size1);
}
答案 0 :(得分:0)
所以你想增加和减少文本框中文本的大小..好的就是按照这个例子..
Textview v= new Textview();
onButtonClickEvent()
{
v.setTextSize(v.getTextSize()+5);
}
答案 1 :(得分:0)
这可能仅适用于mdpi屏幕。 mdpi是标准,但ldpi和hdpi的比例分别为0.75%和1.5%。
试试这个:
在您的实例变量中:
private DisplayMetrics metrics;
private int my_density;
private TextView your_textview;
在onCreate中,初始化变量并查找视图并设置其onclicklistner(确保实现OnClickListener):
your_textview = (TextView)findViewById(R.id.txt_your_textview);
your_textview.setOnClickListener(this);
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
my_density = metrics.densityDpi;
然后是棘手的部分:
根据屏幕密度,您需要缩放尺寸,相应地给出setTextSize()。真的setTextSize()应该照顾这个,但事实并非如此。使用以下方法作为如何增加TextView文本的示例。
private void increaseFontSize(){
float size = your_textview.getTextSize();
int max_size = 30; //define your own max here
if(size<=max_size){
switch(my_density){
case DisplayMetrics.DENSITY_LOW:
size = (your_textview.getTextSize()+2) / 0.75f;
break;
case DisplayMetrics.DENSITY_MEDIUM:
size = your_textview.getTextSize()+2;
break;
case DisplayMetrics.DENSITY_HIGH:
size = (your_textview.getTextSize()+2) / 1.5f;
break;
default:
break;
}
your_textview.setTextSize(size);
your_textview.invalidate();
}
else{
//beyond limit, don't do anything
}
}
现在在你的onclick中只需调用方法:
public void onClick(View view) {
switch(view.getId()) {
case(R.id.txt_your_textview):
increaseFontSize();
break;
}