dynamic textsize change in ice cream sandawich

十年热恋 提交于 2020-01-25 08:15:47

问题


I am trying to change text size when button is clicked. xml :

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:text="hello_world"

   android:textSize="30sp"
   android:layout_margin=""/>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="72dp"
    android:layout_toLeftOf="@+id/textView1"
    android:text="Button1" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_toRightOf="@+id/textView1"
    android:text="Button2" />

This is my code :

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    txtmain=(TextView)findViewById(R.id.textView1);
    txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,30);

    //txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,30);

    txtmain.setTextAppearance(getApplicationContext(), 12);
    btn1=(Button)findViewById(R.id.button1);
    btn2=(Button)findViewById(R.id.button2);
    txtmain.setBackgroundColor(Color.YELLOW);
    btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            txtmain=(TextView)findViewById(R.id.textView1);


            txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,30);
            System.out.println("txtmain get height:"+txtmain.getHeight());
            //Toast.makeText(getApplicationContext(),"txtmain get 
            //height:"+txtmain.getHeight() , Toast.LENGTH_LONG).show();
        }
    });

    btn2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            txtmain=(TextView)findViewById(R.id.textView1);

            txtmain.setTextSize(TypedValue.COMPLEX_UNIT_SP ,80);
            System.out.println("txtmain get height:"+txtmain.getHeight());
            //Toast.makeText(getApplicationContext(),"txtmain get 
             //height:"+txtmain.getHeight() , Toast.LENGTH_LONG).show();
        }
    });

When I click button 1, it gives proper output but when I click button 2 after clicking button1 output changes.

Here is my output :


回答1:


This would appear to be quite similar to known a known issue on ICS, see https://code.google.com/p/android/issues/detail?id=22493 and https://code.google.com/p/android/issues/detail?id=17343. The second of these suggests that a workaround is to add a "\n" to the text in the text view. Reading up those pages and those they link to may help resolve the issue for you.




回答2:


The problem is

 txtmain.setHeight(41);

in first button click, So it will change the height of the textview from WRAP CONTENT to a fixed size. Just remove it..




回答3:


Why are you setting the text box height wen you click the button1?



来源:https://stackoverflow.com/questions/16438319/dynamic-textsize-change-in-ice-cream-sandawich

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!