如何制作动态ImageView?

时间:2013-09-25 11:48:53

标签: android dynamic android-imageview

我需要制作一个带有一些图像的应用程序,而一个位于中心的应用程序需要根据屏幕的大小来改变其大小。这是代码,我需要更改它的图像是image4:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@color/negro"
        android:paddingBottom="20dp"
        android:paddingTop="20dp"
        android:src="@drawable/image1" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/azul"
        android:src="@drawable/lineaceleste" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@color/negro"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:src="@drawable/img3" />

    <ImageView
        android:id="@+id/imageView8"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/azul"
        android:src="@drawable/img8" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/blanco"
        android:entries="@array/listaRadios"
        android:prompt="@string/radioPrompt"
        android:scaleType="fitStart" />

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@color/blk" >

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@color/celeste"
            android:paddingBottom="50dp"
            android:paddingTop="50dp"
            android:src="@drawable/image4" />
    </RelativeLayout>

    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/blanco"
        android:src="@drawable/lineablanca" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/cel"
        android:paddingBottom="5dp"
        android:paddingTop="5dp" >

        <ImageButton
            android:id="@+id/btnPlay"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@null"
            android:src="@drawable/play" />

        <ImageButton
            android:id="@+id/btnPause"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@null"
            android:src="@drawable/pause" />
    </LinearLayout>

    <ImageView
        android:id="@+id/imageView6"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/blanco"
        android:src="@drawable/img6" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/cel"
        android:paddingBottom="10dp"
        android:paddingTop="10dp" >

        <ImageView
            android:id="@+id/imageView7"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:src="@drawable/img7" />

        <ImageButton
            android:id="@+id/imageButton3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@null"
            android:src="@drawable/btn3" />

        <ImageButton
            android:id="@+id/imageButton4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@null"
            android:src="@drawable/btn4" />
    </LinearLayout>

    <ImageView
        android:id="@+id/imageView9"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/azul"
        android:src="@drawable/img9" />

    <ImageView
        android:id="@+id/imageView10"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/blk"
        android:src="@drawable/img10" />

</LinearLayout>

日Thnx

2 个答案:

答案 0 :(得分:3)

您应该以编程方式执行此操作,而不是在xml中添加ImageView。在xml中,您只需要RelativeLayout,它将用作图像持有者。所以你需要做的是:

  1. 创建图片库
  2. `

    <RelativeLayout
        android:id="@+id/image_view_holder"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@color/blk" >`
    
    1. 在图片库中创建和添加ImageView
    2. `

                  DisplayMetrics metrics = new DisplayMetrics();
                  getWindowManager().getDefaultDisplay().getMetrics(metrics);
      
                  int width = metrics.widthPixels;
                  int height = metrics.heightPixels;
      
                  RelativeLayout imgHolder = (RelativeLayout) findViewById(R.id.image_view_holder);
      
                  ImageView img = new ImageView(this);
                  RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, height/2);
                  img.setLayoutParams(params);
      
                  imgHolder.addView(img);`
      

      现在,当您知道屏幕尺寸时,您可以根据屏幕尺寸设置图像尺寸。

答案 1 :(得分:1)

尝试以下代码: - &GT;首先给你的布局一个id。

<RelativeLayout
        android:id="@+id/relative"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@color/blk" >

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@color/celeste"
            android:paddingBottom="50dp"
            android:paddingTop="50dp"
            android:src="@drawable/image4" />
    </RelativeLayout>

现在,在您的代码中,按以下方式进行更改。

ImageView imageView4;
    RelativeLayout relative;
imageView4=(ImageView)findViewById(R.id.imageView4);
        relative=(RelativeLayout)findViewById(R.id.relative);
LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        imageView4.setLayoutParams(params);

        relative.addView(imageView4, params);