【问题标题】:How to make a dynamic ImageView?如何制作动态 ImageView?
【发布时间】:2013-09-25 11:48:53
【问题描述】:

我需要制作一个包含一些图像的应用程序,其中一个位于中心的应用程序需要根据屏幕大小更改其大小。这是代码,我需要更改的图像是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>

谢谢

【问题讨论】:

标签: android dynamic android-imageview


【解决方案1】:

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

  1. 创建图像支架

`

<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

`

            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);`

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

【讨论】:

    【解决方案2】:

    试试下面的代码: -> 首先给你的布局一个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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 2019-07-25
      • 2019-03-10
      • 1970-01-01
      相关资源
      最近更新 更多