我想在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期间,我希望文本大小和颜色不断随机变化。
答案 0 :(得分: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();
}
答案 1 :(得分:1)
你需要使用一个处理程序,你正在修改UI小部件 this文章可以为您提供帮助。
答案 2 :(得分: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布局。
答案 3 :(得分:0)
如果您希望文本连续不断变化,请使用线程 把你的“同时”行动。内部运行方法,并给它一些延迟。
答案 4 :(得分:0)
我认为这是因为isclick = false
if子句中缺少=。它应该是isclick==false
。