簡體   English   中英

Android 應用程序,如何以編程方式在 TableLayout 單元格中居中對齊 ImageView

[英]Android app, how to center align ImageView in a TableLayout cell programmatically

我在 Android 應用程序中遵循以下代碼:

TableRow row = new TableRow(this);
TableRow.LayoutParams lp = new 
TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
lp.setMargins(0,5,0,0);
row.setLayoutParams(lp);
List<List<String>> cList2 = displayTemp.getCList2();
StringBuffer sb = new StringBuffer();
List<String> lStr = cList2.get(0);
for (int ix = 0; ix < lStr.size(); ix++) {
    sb.append(lStr.get(ix));
    if (ix != lStr.size() - 1) {
        sb.append("\n");
    }
}
TextView tv = new TextView(this);
tv.setLayoutParams(new TableRow.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 1.0f));
tv.setText(sb.toString());
tv.setTextSize(COMPLEX_UNIT_DIP, 20);
row.addView(tv);
byte[] decodedString = Base64.decode(cList2.get(1).get(0), Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,decodedString.length);
ImageView iView = new ImageView(this);
iView.setImageBitmap(decodedByte);
row.addView(iView);
tableLayout2.addView(row, rowNum);
rowNum++;

這會動態顯示表格行。 我的第二個表格單元格顯示有此代碼,

byte[] decodedString = Base64.decode(cList2.get(1).get(0), Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,decodedString.length);
ImageView iView = new ImageView(this);
iView.setImageBitmap(decodedByte);
row.addView(iView);

顯示在第二個單元格中的圖像當前是右對齊的。 我想將其顯示為在單元格中居中對齊。 我怎樣才能做到這一點?

添加下面的代碼行

lp.gravity = Gravity.CENTER;

最終代碼

TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
//rest of code
lp.gravity = Gravity.CENTER;
row.setLayoutParams(lp);

重力有以下選項。

Gravity.CENTER_HORIZONTAL
Gravity.CENTER_VERTICAL

嘗試

tv.setGravity(Gravity.CENTER);
row.setGravity(Gravity.CENTER);

或者

LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER;
tv.setLayoutParams(lp);
row.setGravity(Gravity.CENTER);

沒有直接的方法可以在每個單元格上應用邊框,但您可以在任何需要的地方使用 android:background="@drawable/cell_border" 手動完成。

cell_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape= "rectangle"  >
    <solid android:color="#000"/>
    <stroke android:width="1dp"  android:color="#ff9"/>
</shape>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM