Pergunta

Na verdade, o layout principal é um parente de layout que os estagiários contém um parente layout nele.O principal objetivo é adicionar imagens para o interior em relação ao layout .

Eu tentei isso, mas não tive sucesso .Este é o meu código :

import android.os.Bundle;
import android.view.Display;
import android.view.Gravity;
import android.view.animation.Animation;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.app.Activity;
import android.graphics.Point;

public class MainActivity extends Activity {

    Display display;
    Point point;
    int width;
    int height;
    Animation up, down, right, left;
    RelativeLayout rl, rl2;


    Integer[] pics = { R.drawable.img1, R.drawable.img2,R.drawable.img3, R.drawable.img4,
            R.drawable.img5, R.drawable.img6,R.drawable.img7, R.drawable.img8,
            R.drawable.img9, R.drawable.img10,R.drawable.img11, R.drawable.img12,
            R.drawable.img13, R.drawable.img14,R.drawable.img15};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Init();

    }

    private void Init() {
        // TODO Auto-generated method stub


        rl = (RelativeLayout) findViewById(R.id.Rlayout);
        rl.setGravity(Gravity.CENTER);
        int x = 0;
        int y = 0;

        for(int i = 1 ; i<16 ; i++ ){
            ImageView img = new ImageView(this);
            img.setImageResource(pics[i-1]);
            int tempx = img.getWidth();
            int tempy = img.getHeight();
            rl.addView(img, x, y);
            x += tempx;
            if(i%4 == 0){
                x = 0;
                y += tempy;
            }

        }
        rl.bringToFront();

        }
}

O código XML para o layout a ser utilizado é :

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:id="@+id/R1Layout">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="center"
        android:id="@+id/Rlayout" >
    </RelativeLayout>

</RelativeLayout>

A saída que eu vejo é uma tela em branco .

Me ajudar com uma solução de como exibir as imagens no interior relativo de layout

Obrigado antecipadamente ,

Foi útil?

Solução

Eu acho que você está mal-entendido, x e y não são as coordenadas, são largura e altura, respectivamente, em

rl.addView(img, x, y);

e você não puder obter o tamanho do imageviews com:

int tempx = img.getWidth();
int tempy = img.getHeight(); 

Você deve usar um recipiente para definir o tamanho e as coordenadas para o seu imageviews:

 RelativeLayout.LayoutParams params;
                params = new RelativeLayout.LayoutParams(100, 100);             
                params.leftMargin = x;
                params.topMargin = y;
                rl.addView(img,params);

este é um exemplo de como fazer isso:

private void Init() {
    // TODO Auto-generated method stub

    int x = 0;
    int y = 0;
    rl = (RelativeLayout) findViewById(R.id.Rlayout);
    rl.setGravity(Gravity.CENTER);
      for(int i = 0 ; i<14 ; i++ ){
            ImageView img = new ImageView(this);
            img.setImageResource(pics[i]);
                //int tempx = img.getWidth();
            //int tempy = img.getHeight();           
            int tempx = 100;                
            int tempy = 100;
            //rl.addView(img, x, y);

            x += tempx;
            if(i%4 == 0){
                x = 0;
                y += tempy;
            }

            RelativeLayout.LayoutParams params;
            params = new RelativeLayout.LayoutParams(100, 100);             
            params.leftMargin = x;
            params.topMargin = y;
            rl.addView(img,params);



        }                       
    rl.bringToFront();

}

como Rajesh, eu recomendo muito o uso de um Gridview em vez de RelativeLayout.

Veja este exemplo:

GridView e excesso de espaço de preenchimento

Outras dicas

Para inserir imagens no interior RelativeLayout, você precisa usar Imagemver objeto.Você pode fazer isso usando o addView() método que está disponível para RelativeLayout (através de herança de ViewGroup classe).Você pode fazer isso da seguinte forma, dentro de sua atividade (você tem que decidir onde você deseja colocar este):

RelativeLayout rl = (RelativeLayout) findViewById(R.id.Rlayout); // find inner layout
ImageView iview = new Image(this);
// Set image view parameters - refer to Android documentation for this
rl.addView(iview); // and so on. 
// You can add as many items as you want to any layout you want in this manner
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top