Android:以编程方式绘制自定义视图

手F

我正在开发一个应用程序,在该应用程序中我将在表布局中水平显示图像,然后显示文本,然后再次显示图像。

我正在以编程方式创建表布局:

for(i = 0; i < arrayList.size(); i++){
    /* Find Tablelayout defined in main.xml */
    TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout);
    tableLayout.setStretchAllColumns(true);

    /* Create a new row to be added. */
    TableRow tableRow = new TableRow(this);
    tableRow.setId(i);
    tableRow.setClickable(true);
    tableRow.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            v.setBackgroundColor(Color.GRAY);
        }
    });
    tableRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));

    /* Create a Button to be the row-content. */
    ImageView imageView1 = new ImageView(this);
    if(arrayList.get(i).getImage().equalsIgnoreCase("Y")){
    // setImage
    }

    imageView1.setPadding(5, 5, 5, 5);
    imageView1.setLayoutParams(new TableRow.LayoutParams(100, 100));
    tableRow.addView(imageView1);

    TextView textViewName = new TextView(this);
    textViewName.setText(arrayList.get(i).getName());
    textViewName.setPadding(5, 5, 5, 5);
    textViewName.setGravity(Gravity.CENTER_VERTICAL);
    textViewName.setTextSize(15);
    textViewName.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.MATCH_PARENT,7));
    tableRow.addView(textViewName);

    ImageView imageView2 = new ImageView(this);
    imageView2.setImageDrawable(getResources().getDrawable(R.drawable.icon));
    imageView2.setPadding(25, 25, 25, 25);
    imageView2.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.MATCH_PARENT,1));
    tableRow.addView(imageView2);           

    tableLayout.addView(tableRow, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));

    View horizontalLine = new View(this);
    horizontalLine.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, 1));
    horizontalLine.setBackgroundColor(Color.rgb(50, 50, 50));
    tableLayout.addView(horizontalLine);
}

在此帮助下,我将输出结果如图1所示。

在此处输入图片说明

但我需要输出为图像2。

在此处输入图片说明

图像1和2之间的区别是红线。我在绘图视图的帮助下获得了优势,但涵盖了整个宽度。我需要一条与图2中的红色相同的线。在中心且宽度固定。

请建议我要遵循哪些更改或步骤。需要您的宝贵建议。

甜心ish

您可以使用setBackgroundColor方法设置颜色

horizontalLine.setBackgroundColor(Color.RED);

编辑 :

您可以将固定长度的水平线置于中心。

  • 添加表格行
  • 定义视图的布局权重
  • 在TableRow中添加视图
  • 在表格布局中添加tableRow
View horizontalLine = new View(this);
// Set weight
TableRow.LayoutParams params =  new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, 10,0.7f);
horizontalLine.setLayoutParams(params);

TableRow tr = new TableRow(this);  
TableLayout.LayoutParams tableRowParams= new TableLayout.LayoutParams
             (TableLayout.LayoutParams.MATCH_PARENT,TableLayout.LayoutParams.WRAP_CONTENT);

// Set margin
int leftMargin=20;
int topMargin=2;
int rightMargin=20;
int bottomMargin=2;

tableRowParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin);
tr.setLayoutParams(tableRowParams);

// Add View in tr
tr.addView(horizontalLine);

//Add tr in Table
tableLayout.addView(tr);

您可以看到输出:

在此处输入图片说明

希望对你有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android如何才能以编程方式向自定义视图分配自定义参数?

来自分类Dev

以正确的方式以编程方式实例化自定义视图

来自分类Dev

以编程方式创建自定义Eventlog视图

来自分类Dev

以编程方式创建自定义Eventlog视图

来自分类Dev

以编程方式自定义Android Wear观看超时

来自分类Dev

Android自定义Listview以编程方式单击项目

来自分类Dev

在android中的自定义图片视图上绘制

来自分类Dev

使用Android自定义视图实时绘制图

来自分类Dev

Android-测试自定义视图是否正确绘制?

来自分类Dev

Android的绘制自定义视图,如谷歌付费

来自分类Dev

以编程方式增加自定义视图在表格视图行中的高度(因此也增加该行的高度)

来自分类Dev

如何访问以编程方式添加到自定义视图的视图?

来自分类Dev

自定义通知使用以编程方式生成的可绘制对象

来自分类Dev

如何使用 CAShapeLayer 以编程方式在自定义 UIView 中居中绘制圆圈

来自分类Dev

以编程方式自定义UITableViewCell

来自分类Dev

以编程方式添加自定义布局

来自分类Dev

以编程方式自定义样式

来自分类Dev

以编程方式自定义布局

来自分类Dev

在情节提要中自定义表格视图节标题,而不是以编程方式自定义?

来自分类Dev

自定义视图未绘制

来自分类Dev

绘制多个自定义视图

来自分类Dev

自定义视图不会绘制位图

来自分类Dev

在自定义Eclipse视图中绘制

来自分类Dev

绘制自定义视图的正确方法?

来自分类Dev

如何快速用自定义视图以编程方式替换IBOutlet uiview

来自分类Dev

以编程方式添加多个自定义视图以进行布局

来自分类Dev

以编程方式将自定义视图放入ScrollView(或HorizontalScrollView)中(无滚动)

来自分类Dev

以编程方式快速发送到自定义创建的视图中的前端UIButton

来自分类Dev

以编程方式将自定义视图添加到片段布局

Related 相关文章

  1. 1

    Android如何才能以编程方式向自定义视图分配自定义参数?

  2. 2

    以正确的方式以编程方式实例化自定义视图

  3. 3

    以编程方式创建自定义Eventlog视图

  4. 4

    以编程方式创建自定义Eventlog视图

  5. 5

    以编程方式自定义Android Wear观看超时

  6. 6

    Android自定义Listview以编程方式单击项目

  7. 7

    在android中的自定义图片视图上绘制

  8. 8

    使用Android自定义视图实时绘制图

  9. 9

    Android-测试自定义视图是否正确绘制?

  10. 10

    Android的绘制自定义视图,如谷歌付费

  11. 11

    以编程方式增加自定义视图在表格视图行中的高度(因此也增加该行的高度)

  12. 12

    如何访问以编程方式添加到自定义视图的视图?

  13. 13

    自定义通知使用以编程方式生成的可绘制对象

  14. 14

    如何使用 CAShapeLayer 以编程方式在自定义 UIView 中居中绘制圆圈

  15. 15

    以编程方式自定义UITableViewCell

  16. 16

    以编程方式添加自定义布局

  17. 17

    以编程方式自定义样式

  18. 18

    以编程方式自定义布局

  19. 19

    在情节提要中自定义表格视图节标题,而不是以编程方式自定义?

  20. 20

    自定义视图未绘制

  21. 21

    绘制多个自定义视图

  22. 22

    自定义视图不会绘制位图

  23. 23

    在自定义Eclipse视图中绘制

  24. 24

    绘制自定义视图的正确方法?

  25. 25

    如何快速用自定义视图以编程方式替换IBOutlet uiview

  26. 26

    以编程方式添加多个自定义视图以进行布局

  27. 27

    以编程方式将自定义视图放入ScrollView(或HorizontalScrollView)中(无滚动)

  28. 28

    以编程方式快速发送到自定义创建的视图中的前端UIButton

  29. 29

    以编程方式将自定义视图添加到片段布局

热门标签

归档