在TableLayout中动态居中ImageView

时间:2012-10-18 13:43:27

标签: android center tablerow dynamically-generated android-tablelayout

我正在创建一个动态制作桌面的应用程序。每个tablerow包括3个ImageView和一个TextView,textview没有任何问题,我同样使用textview.setGravity(Gravity.Center_Vertical),但是ImageViews存在问题。如何居中(垂直和水平)?

这是wichich显示我想要实现的目标:enter image description here

这是Wchich向TableLayout发布的所有内容:

public class Obiekt {
    int moje;
    TableRow tr = new TableRow(MainActivity.this);
    ImageView iv = new ImageView(MainActivity.this);
    ImageView sett = new ImageView(MainActivity.this);
    ImageView rin = new ImageView(MainActivity.this);

    public Obiekt(int obraz, int obraz2, int obraz3, int dzwiek, String tekst) {
        moje = sound.load(MainActivity.this, dzwiek, 1);
        iv.setImageResource(obraz);
        //iv.setLayoutParams(rowparams);
        tr.addView(iv);
        // TEXTVIEW settings
        TextView tv = new TextView(MainActivity.this);
        tv.setText(tekst);
        tv.setTypeface(tf);
        tv.setTextSize(rozmiar);
        tv.setGravity(Gravity.CENTER_VERTICAL);
        tv.setGravity(Gravity.CENTER_HORIZONTAL);
        tv.setTextColor(Color.parseColor("#FFFFFF"));
        tr.addView(tv);
        // ImageView RIGHT
        sett.setImageResource(obraz2);
        tr.addView(sett);
        // ImageView RING
        rin.setImageResource(obraz3);
        tr.addView(rin);
        //tr.setLayoutParams(rowparams1);
        tl.addView(tr);
        View wiew = new View(MainActivity.this);
        wiew.setBackgroundResource(R.drawable.divide);
        tl.addView(wiew);
        tv.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                play();
            }
        });
    }

    public void hide() {
        tr.setVisibility(10);
    }

    public void size() {
        iv.getLayoutParams().height=rozmiar;
        iv.getLayoutParams().width=rozmiar;
        sett.getLayoutParams().width=rozmiar;
        sett.getLayoutParams().height=rozmiar;
        rin.getLayoutParams().height=rozmiar;
        rin.getLayoutParams().width=rozmiar;
    }

    public void play() {
        sound.play(moje, 1, 1, 0, 0, 1);
    }
}

3 个答案:

答案 0 :(得分:1)

设置您的图像视图" SCALE TYPE"以FitXY为例,你的imageview是imageView而不是 imageView.setScaleType(ScaleType.FIT_XY);

答案 1 :(得分:0)

试试这个

ImageView imgView=new ImageView(this);
imgView.setImageResource(R.drawable.yourimage);
imgView.setScaleType(ImageView.ScaleType.FIT_XY);

答案 2 :(得分:0)

您是否尝试在ImageView内添加RelativeLayout

RelativeLayout设置为LayoutParams以匹配您要绘制的空间(单元格的完整大小),然后将ImageView添加到{{1}添加RelativeLayout