【问题标题】:Moving Android ImageView by setting its coordinates通过设置坐标来移动 Android ImageView
【发布时间】:2013-08-01 23:05:18
【问题描述】:

我正在尝试做一些相当简单的事情:通过增加 X 或 Y 坐标来移动图像视图。 最初,我在图像视图上使用了函数 getX、getY、setX 和 setY,它们在模拟器中工作。但是,当将它与手机一起使用时,我在这些功能上遇到了一个名为 NoSuchMethodError 的错误。

这是我得到的确切错误(我在上面列出的每个函数中都得到了这个): java.lang.NoSuchMethodError: android.widget.ImageView.getX

根据我的研究,这是因为 setX 和 setY 仅在 API11 上实现,在这种情况下我们使用的是 API10。我尝试了其他各种方法,例如使用 setMatrix、changePos() 和其他一些函数来更改 ImageView 的位置。

我的问题是,如果我使用 API10,我可以用什么来移动这样的 ImageView?

【问题讨论】:

    标签: java android eclipse imageview nosuchmethoderror


    【解决方案1】:

    您可以尝试使用布局参数。假设您使用的是FrameLayout,或任何其他支持边距的布局

    private ImageView myView;// populated in onCcreate
    
    private void moveImage(int x, int y) {
        ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)myView.getLayoutParams();
        lp.leftMargin = x;
        lp.rightMargin = y;
        requestLayout();
    }
    

    【讨论】:

      【解决方案2】:

      这里有一个例子:

      LinearLayout.LayoutParams lp = (android.widget.LinearLayout.LayoutParams) logoImage
                      .getLayoutParams();
          lp.setMargins(0, 28, 0, 0);
              logoImage.setLayoutParams(lp);
      

      如果您的布局是相对布局,则更改类型 LinearLayout.LayoutParams 。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-18
        • 2012-01-17
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多