在java中将对象移动到定义的随机数量上

时间:2014-01-18 18:14:29

标签: java android

所以我在android / java中有这个TextView,我想沿着它所在的水平轴随机定位。这是我到目前为止的代码:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <View
        android:layout_width="100dp" //This is the width I want to randomize
        android:layout_height="wrap_content"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/n5"/>

我的目标是,通过随机化100dp行中的android:layout_width=,我可以将TextView移动一定的随机数量。有谁知道怎么做?

谢谢!

2 个答案:

答案 0 :(得分:0)

直接回答你的问题:
1.给视图一个id

<View android:id="@+id/picture_stream"  
      android:layout_width="100dp"  
      android:layout_height="wrap_content" />

2。在onCreate中以编程方式更改宽度:

...
View view_instance = (View)findViewById(R.id.nutrition_bar_filled);  
LayoutParams params=view_instance.getLayoutParams();  
params.width=newOne; //use Math.random() to create the value.
view_instance.setLayoutParams(params);

另见"view layout width - how to change programmatically"

你也可以使用margin / padding而不是用另一个视图“推”它。

答案 1 :(得分:0)

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/movingTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/n5"/>

</LinearLayout>

将TextView设置为水平线性布局中的唯一项目,然后以编程方式为textview设置随机左边距。

TextView movingTextView = (TextView) this.findViewById(R.id.movingTextView);
movingTextView.setPaddingRelative((int) 1+Math.random()*100,0,0,0);