【问题标题】:Updating the position of an image更新图像的位置
【发布时间】:2011-03-06 10:15:34
【问题描述】:

您好,我对使用 Android 绘图还很陌生。 我正在寻找一种最简单的方法来执行以下操作:

  1. 更改我放置在起始 x,y 位置的图像的位置
  2. 可能布局有背景图片等,我在 xml 中有一个用占位符定义的框架布局。
  3. 我发现了可能与动态图像有关的问题。

我只需要一个基本设置,我的代码会为 x,y 生成一个值,然后我只需将图像转换为 具有这些 x,y 值的新位置。 即 translate.image(x,y); 我发现大多数项目在处理手势、动画等方面都很复杂。

我的主要 xml 布局中有这个基本的框架布局:

<FrameLayout  
   android:id="@+id/graphics_holder"  
   android:layout_height="170px"  
   android:layout_width="match_parent"

   >

谢谢

【问题讨论】:

    标签: android xml layout


    【解决方案1】:

    试试这样的:

    FrameLayout myView = (FrameLayout) findViewById(R.id.graphics_holder);  
    
    int toX = 50; // change these
    int toY = 100;
    LayoutParams lp = (LayoutParams) myView.getLayoutParams();
    lp.leftMargin = toX;
    lp.topMargin = toY;
    myView.setLayoutParams(lp);
    myView.layout(toX, toY, 0, 0); // might be unnecessary
    

    【讨论】:

    • 感谢您的回复,那么我应该删除 xml 中的 FrameLayout,并仅使用您以编程方式拥有的内容,还是可以在 xml 中添加 LayoutParams 来代替 FrameLayout?
    • 不,您不需要删除 xml 中的 FrameLayout。我的代码用于在不使用动画的情况下更改图像的位置。只需将 toX 和 toY 替换为所需的值即可。
    • 您的 myView 是在哪里定义的?
    • 在视图设置中我要移动的图像在哪里定义?
    • 我在答案中添加了更多代码以更具体。据我了解,您的图像在您的 graphics_holder 中。或者您想在 FrameLayout 中移动您的图像?然后我会推荐一个RelativeLayout。在这种情况下,您必须使用 ImageView myView = (ImageView) findViewById(R.id.myimageview)
    猜你喜欢
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多