当我按下加号按钮时,我想增加编辑文本中的文本大小,当按下减号按钮时,我想减少

时间:2011-03-08 10:36:07

标签: android

这里我输入了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);         
}

2 个答案:

答案 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;



}