user2898347
user2898347

Reputation: 47

How to add image view and text view to a linear layout

my xml is like follow I want to add image view and text view programmatically to given xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="25dip" >

 <TextView
       android:id="@+text1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginBottom="12dip"
       android:text="@string/app_name"
       android:textSize="24.5sp" />

</LinearLayout>

but I want output like following programmatically ie a linear layout contain image view and old text view and add that linearlayout below to new textview.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="25dip" >

 <TextView
       android:id="@+name"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginBottom="12dip"
       android:text="@string/app_name"
       android:textSize="24.5sp" />

   <LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="25dip" >

    <ImageView
           android:layout_width="wrap_content"
           android:layout_height="60dp"
           android:layout_marginBottom="12dip"

           android:src="@drawable/app_icon_big" />
    <TextView
       android:id="@+text1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginBottom="12dip"
       android:text="@string/app_name"
       android:textSize="24.5sp" />

   </LinearLayout>

</LinearLayout>

Upvotes: 2

Views: 8010

Answers (2)

Hareshkumar Chhelana
Hareshkumar Chhelana

Reputation: 24848

Try this way,hope this will help you to solve your problem.

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/outerLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="25dp" >

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="12dp"
        android:text="@string/app_name"
        android:textSize="24.5sp" />

</LinearLayout>

MainActivity.java

public class MyActivity extends Activity {

    private LinearLayout outerLinearLayout;
    private TextView text1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        outerLinearLayout = (LinearLayout) findViewById(R.id.outerLinearLayout);
        text1 = (TextView) findViewById(R.id.text1);

        LinearLayout innerLinearLayout = new LinearLayout(this);

        ImageView imageView = new ImageView(this);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        params.bottomMargin=12;
        imageView.setLayoutParams(params);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        imageView.setImageResource(R.drawable.ic_launcher);
        innerLinearLayout.addView(imageView);
        TextView textView = new TextView(this);
        textView.setTextSize((float) 24.5);
        textView.setText("New Text View");
        textView.setLayoutParams(params);
        outerLinearLayout.removeAllViews();
        innerLinearLayout.addView(text1);
        outerLinearLayout.addView(textView);
        outerLinearLayout.addView(innerLinearLayout);
    }
}

Upvotes: 4

Pradeep Kumar
Pradeep Kumar

Reputation: 877

change inner layout

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="25dip" >

By

<LinearLayout 
    android:id="@+id/internal_image_textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="25dip"
    android:visibility="gone" >

Then whenEver you want to show just

findViewById(R.id.internal_image_textView).setVisibility(View.VISIBLE)

Upvotes: 0

Related Questions