0

我需要制作一个带有一些图像的应用程序,并且它位于中心的应用程序需要根据屏幕的大小来改变他的大小。这是代码,我需要更改的图像是 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>

谢谢

4

2 回答 2

3

而不是在 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);`

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

于 2013-09-25T12:10:16.160 回答
1

试试下面的代码: -> 首先给你的布局一个 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);
于 2013-09-25T11:55:15.247 回答