gpt4 book ai didi

android - 将 ImageView 动态添加到现有 View

转载 作者:行者123 更新时间:2023-11-29 14:27:55 25 4
gpt4 key购买 nike

我正在开发一个应用程序,它在启动时会显示一个预定义的布局,例如下面屏幕截图中的 Image(1)

现在点击一个按钮,我想动态添加另一个 View ,如下面屏幕截图中的 Image(2) 到现有 View ,导致一些像 Image(3)下面的截图。

如果再次点击 onclick,Image(2) 将被添加到现有 View 中,从而产生类似于 Image(4) 的内容。

我如何实现这个?
通过搜索,我发现它需要像 LayoutInflater.addView() 这样的东西 thisLinearLayout.addView() 类似 this .

但我不知道在我的情况下到底要使用什么。
另外,我不是想在按钮点击时添加只是一个 View ,而是一组特定的 ImageView 、2 个 TextView 等 View 。如图片(2)所示。

感谢任何帮助。


screenshot


编辑 1:

我试过这样的事情:activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"
android:onClick="addViews"
android:text="Add" />

</RelativeLayout>

MainActivity.java

public class MainActivity extends Activity {
LinearLayout main;
int count = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
main = (LinearLayout) findViewById(R.id.main);
}

public void addViews(View view) {
LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
Button btn = new Button(this);
btn.setLayoutParams(lparams);
count++;
btn.setText("Hello World : " + count);
main.addView(btn, count);
}
}

它产生这样的东西:

screenshot

现在,我如何识别点击了哪个按钮?

最佳答案

因此,您可以像这样从 Activity 的 XML 布局中扩充 View

View v = View.inflate(this, R.layout.whatever, null);

然后您可以将它添加到您的 LinearLayout 中,如下所示:

linearLayout.addView(v);

如果你想访问项目中的内部 View ,你可以这样做:

TextView textView = (TextView) v.findViewById(R.id.textView1);

因此,您必须在 XML 布局中定义该组 View ,对其进行扩充,根据需要操作其 View ,然后将其添加到您的 LinearLayout

请注意,您需要将 LinearLayout 方向设置为垂直,否则它将无法正常工作。

关于android - 将 ImageView 动态添加到现有 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16942486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com