Android Studio中运行时图像位置重置为零

时间:2017-04-25 20:57:09

标签: java android imagebutton

我在预览中设置了一些图像按钮,在xml文件中设置了它们的位置,但是当我运行程序时,所有图像都移动到(0,0)。

<ImageButton
    android:id="@+id/imageButton3"
    android:layout_width="126dp"
    android:layout_height="117dp"
    android:background="@null"
    app:srcCompat="@drawable/sad"
    tools:layout_editor_absoluteY="82dp"
    tools:layout_editor_absoluteX="200dp" />

IDE提示我:​​

布局编辑器允许您将小部件放在画布上的任何位置,并使用设计时属性(例如layout_editor_absoluteX)记录当前位置。这些属性不会在运行时应用,因此如果您在设备上推送布局,窗口小部件可能出现在与编辑器中显示的位置不同的位置。要解决此问题,请通过从边连接拖动来确保窗口小部件具有水平和垂直约束。

如何在运行时设置图像的值?

1 个答案:

答案 0 :(得分:1)

您可以使用FrameLayout或RelativeLayout并设置左边距和上边距来放置视图。

diff --git a/spec/portaudio_spec.cr b/spec/portaudio_spec.cr
index d8171a9..049a294 100644
--- a/spec/portaudio_spec.cr
+++ b/spec/portaudio_spec.cr
@@ -1,6 +1,6 @@
 require "./spec_helper"

-describe Portaudio do
+describe Pa do
   # TODO: Write tests

   it "works" do
diff --git a/src/portaudio/device.cr b/src/portaudio/device.cr
index f5ec4f3..cf999ee 100644
--- a/src/portaudio/device.cr
+++ b/src/portaudio/device.cr
@@ -3,13 +3,13 @@ require "./host_api"

 module Pa
   class Device
-    delegate :max_input_channels, :max_output_channels, @info
-    delegate :default_low_input_latency, :default_low_output_latency, @info
-    delegate :default_high_input_latency, :default_high_output_latency, @info
-    delegate :default_sample_rate, @info
+    delegate :max_input_channels, :max_output_channels, to: @info
+    delegate :default_low_input_latency, :default_low_output_latency, to: @info
+    delegate :default_high_input_latency, :default_high_output_latency, to: @info
+    delegate :default_sample_rate, to: @info
     getter id

-    def initialize(@id, @info)
+    def initialize(@id : Pa::DeviceIndex, @info : LibPortAudio::DeviceInfo)
     end

     def name
diff --git a/src/portaudio/host_api.cr b/src/portaudio/host_api.cr
index de3b521..9a95ec2 100644
--- a/src/portaudio/host_api.cr
+++ b/src/portaudio/host_api.cr
@@ -2,9 +2,9 @@ require "./lib"

 module Pa
   class HostApi
-    delegate :device_count, :default_input_device, :default_output_device, :type, @info
+    delegate :device_count, :default_input_device, :default_output_device, :type, to: @info

-    def initialize(@info)
+    def initialize(@info : LibPortAudio::HostApiInfo)
     end

     def name