为了账号安全,请及时绑定邮箱和手机立即绑定

在 LinearLayouts 之间添加空间

在 LinearLayouts 之间添加空间

青春有我 2021-09-03 17:34:13
我正在尝试制作如下所示的数据库项目列表..   for (int i=0; i < jArray.length(); i++)           {               JSONObject row = jArray.getJSONObject(i);               LinearLayout ll = new LinearLayout(MainActivity.this);               ll.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,100));               Button btn = new Button(MainActivity.this);               //btn.setText(row.getString("subject"));               btn.setText(String.valueOf(i));               btn.setLayoutParams(new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,(float)0.8));               File imgFile = new  File(file_path);               Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());               ImageView iv = new ImageView(MainActivity.this);               iv.setScaleType(ImageView.ScaleType.FIT_XY);               iv.setImageBitmap(myBitmap);               iv.setLayoutParams(new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,(float)0.2));               ll.addView(btn);               ll.addView(iv);               LinearLayout sv = findViewById(R.id.sv_layout);               sv.addView(ll);           }结果是这样的:但我想在线性布局之间留出空间并使图像高度更短以与按钮高度相等我怎样才能做到这一点?谢谢,
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

在布局参数中设置边距并将它们传递给您的 ImageView 对象。


  LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,(float)0.2);

            int dp = getDps(8);

            layoutParams.setMargins(0,dp,0,dp);

            iv.setLayoutParams(layoutParams);

函数 getDps():


public int getDps(int sizeInDp){

        float scale = getResources().getDisplayMetrics().density;

        return  (int) (sizeInDp*scale + 0.5f);

    }

这看起来像:

//img1.sycdn.imooc.com//6131ec5d0001ece307311285.jpg

查看完整回答
反对 回复 2021-09-03
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

以水平方向的线性布局拍摄按钮和图像。设置 Button 和 Imageview 高度以包装内容。现在为线性布局之间的间隙提供适当的边距


查看完整回答
反对 回复 2021-09-03
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

请试试这个代码

  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 100);
                    params.setMargins(0, 5, 5, 10);
                    ll.setLayoutParams(params);

您可以在此行中添加您的特定边距 params.setMargins(0, 5, 5, 10);


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信