テーブル行を動的に作成するアプリを作成しています。各 tablerow には 3 つの ImageViews と 1 つの TextView が含まれています。textview には問題はありません。textview.setGravity(Gravity.Center_Vertical) を使用するだけですが、ImageViews に問題があります。それらを中央に配置する方法 (垂直方向および水平方向) ?
これが私が達成したいことを示す写真です:
すべてを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);
}
}