在PROGRAMMATICYY的现有textview下面添加一个imageView

时间:2017-04-06 09:07:23

标签: android android-alertdialog

如何以编程方式将视图添加到现有视图中,例如我在XML中使用textview,现在我需要以编程方式在textview下添加imageview,这是我尝试过的,

     HorizontalScrollView scroll = new HorizontalScrollView(getApplicationContext());
    LinearLayout imageLayout = new LinearLayout(getApplicationContext());
    scroll.setLayoutParams(new ViewGroup.LayoutParams(imageLayout.getWidth(),
            imageLayout.getHeight()));
    scroll.addView(imageLayout);

    for (int i = 0; i < 15; i++) {

        final ImageView imageView = new ImageView(this);
        imageView.setTag(i);
        imageView.setImageResource(R.drawable.logo);

        imageLayout.addView(imageView);


        imageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.e("Tag", "" + imageView.getTag());
            }
        });
    }but its not adding any imageview, I'm trying to do this in **AlertDialog**

4 个答案:

答案 0 :(得分:0)

AttributeError: /usr/lib64/libenchant.so.1: undefined symbol: enchant_dict_add不能有多个孩子。您应该将布局包装在ScrollView内,然后可以在LinearLayout中添加任意数量的视图。干杯:)

答案 1 :(得分:0)

你做错了。 检查下面的代码片段。

LinearLayout yourlayout = (LinearLayout)findViewById(R.id.layoutid);//Layout which is inside scrollview

    LinearLayout imageLayout = new LinearLayout(getApplicationContext());

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    // add the rule that places your LinearLayout below your TextView object
    params.addRule(RelativeLayout.BELOW, TextView.getId());

    // set the layoutParams on the LinearLayout
    imageLayout.setLayoutParams(params);


    yourlayout.addView(imageLayout);

    for (int i = 0; i < 15; i++) {

        final ImageView imageView = new ImageView(this);
        imageView.setTag(i);
        imageView.setImageResource(R.drawable.logo);

        imageLayout.addView(imageView);


        imageView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.e("Tag", "" + imageView.getTag());
            }
        });
    }

答案 2 :(得分:0)

我通过添加

解决了这个问题
<HorizontalScrollView 
android:id="@+id/horizontal_scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

    <LinearLayout
    android:id="@+id/linear"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    </LinearLayout>

</HorizontalScrollView>
XML中的

&安培;

  LinearLayout layout = (LinearLayout) findViewById(R.id.linear);
for (int i = 0; i < 10; i++) {
    ImageView imageView = new ImageView(this);
    imageView.setId(i);
    imageView.setPadding(2, 2, 2, 2);
    imageView.setImageBitmap(BitmapFactory.decodeResource(
            getResources(), R.drawable.ic_launcher));
    imageView.setScaleType(ScaleType.FIT_XY);
    layout.addView(imageView);
}
MainActivity.java中的

答案 3 :(得分:-1)

ImageView imageView = new ImageView(this.getActivity());
imageView.setId(View.generateViewId());
params.addRule(RelativeLayout.BELOW, imageView.getId());