【发布时间】:2021-10-03 10:39:41
【问题描述】:
我创建了一个带有 ImageView 小部件的 xml 文件,我想使用 Java 以编程方式使用 xml 值 android:layout_marginStart 更改此 ImageView 的位置。我想在 Java 中设置值并更新小部件。我怎样才能改变价值? findVIewById 不能用于小部件...
<ImageView
android:id="@+id/plane"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp" <-- i want to change this value with java code
android:contentDescription="@string/plane"
android:src="@drawable/plane"/>
【问题讨论】:
-
我没有在主应用程序上工作。我创建了一个应用程序小部件(如天气小部件),我想在那里更改 xml 值。
-
你真的不可能在外部层次结构中访问
LayoutParams,所以这是不可能的。如果您将只有几个可能的位置,您可以在布局中放置多个<ImageView>s,每个都位于不同的边距,并根据需要设置它们的可见性。否则,atm 唯一想到的其他事情就是使用RemoteViews#setFloat()调用ImageView的setX()、setTranslationX()等方法,但这可能不会像预期的那样运行。 -
我可以在 Java 中创建一个 ImageView 并将其放入小部件布局中吗?这样就会生成xml代码?
-
不。您对
View创建的唯一控制是通过布局 XML,并且仍然只能在编译时生成。
标签: android xml widget imageview margins