0

onCreateメソッドでテキストのサイズと色をランダムに設定したい

これが私のコードです:

private TextView start;
private boolean isClicked;
protected void onCreate(Bundle savedInstanceState)
{

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

    start = (TextView) findViewById(R.id.tvStart);

    isclick = false;
    Random r = new Random();

    while (isclick = false)
    {

        start.setTextSize(r.nextInt(50));
        start.setTextColor(Color.rgb(r.nextInt(256), r.nextInt(256),
                r.nextInt(256)));
    }


}

私のこのコードは機能しません。

onCreate の間、テキストのサイズと色を継続的かつランダムに変更したいと考えています。

4

5 に答える 5

3

それは私のために働きます:(問題があることを知らせてください)

private boolean isclick;
Handler handler ; 
private TextView start;
private boolean isClicked;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {

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

        start = (TextView) findViewById(R.id.tvStart);
        handler = new Handler();

        isclick = false;
        new Thread(new Runnable() {

            @Override
            public void run() {
                 while (isclick == false)
                    {
                handler.post(new Runnable() {

                    @Override
                    public void run() {
                        Random r = new Random();



                            start.setTextSize(r.nextInt(50));
                            start.setTextColor(Color.rgb(r.nextInt(256), r.nextInt(256),
                                    r.nextInt(256)));

                        }

                    });
                     Log.w("DEBUG","Text View  value : "+ start.getText().toString());

                        try {
                            Thread.sleep(1000);
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                }


            }
        }).start();



    }
于 2012-07-25T02:37:57.327 に答える
1

x と呼ばれる TextView で動作するコードを次に示します。

//create random value between 0 and 70
int random = (int)Math.ceil(Math.random()*70);
x.setTextSize((float)random);

int red = (int)Math.ceil(Math.random()*255);
int green = (int)Math.ceil(Math.random()*255);
int blue = (int)Math.ceil(Math.random()*255);

Color randomcolor = new Color();

if (red < 16){
    hexred = "0" + Integer.toHexString(red);
}else {
    hexred = Integer.toHexString(red);
}
if (green < 16){
    hexgreen = "0" + Integer.toHexString(green);
}else {
    hexgreen = Integer.toHexString(green);
}
if (blue < 16){
    hexblue = "0" + Integer.toHexString(blue);
}else {
    hexblue = Integer.toHexString(blue);
}

String color = "#" + hexred + hexgreen + hexblue;

x.setTextColor(randomcolor.parseColor(color));

ただし、継続的に変更することはお勧めしません。継続的に色を変更したい場合、色とサイズの更新が遅くなり、何も表示されない可能性があります。また、xml での計算が原因で、XML レイアウト全体が読み込まれない場合もあります。

于 2012-07-24T02:42:50.033 に答える
1

この記事が役立つかもしれないUI ウィジェットを変更している場合は、ハンドラーを使用する必要があり ます。

于 2012-07-24T02:11:24.453 に答える
0

テキストをランダムに継続的に変更したい場合は、スレッドを使用してください。
「while」アクションを入れます。run メソッド内で、少し遅延させます。

于 2012-07-24T01:46:38.187 に答える
0

isclick = falseif 句に = がないためだと思います。である必要がありますisclick==false

于 2012-07-24T05:05:54.860 に答える