猿问

在 LinearLayouts 之间添加空间

我正在尝试制作如下所示的数据库项目列表..


   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);


           }

结果是这样的:

但我想在线性布局之间留出空间并使图像高度更短以与按钮高度相等

http://img3.mukewang.com/6131ec480001658306630813.jpg

我怎样才能做到这一点?谢谢,


青春有我
浏览 142回答 3
3回答

凤凰求蛊

在布局参数中设置边距并将它们传递给您的 ImageView 对象。&nbsp; LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,(float)0.2);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int dp = getDps(8);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; layoutParams.setMargins(0,dp,0,dp);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; iv.setLayoutParams(layoutParams);函数 getDps():public int getDps(int sizeInDp){&nbsp; &nbsp; &nbsp; &nbsp; float scale = getResources().getDisplayMetrics().density;&nbsp; &nbsp; &nbsp; &nbsp; return&nbsp; (int) (sizeInDp*scale + 0.5f);&nbsp; &nbsp; }这看起来像:

拉莫斯之舞

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

有只小跳蛙

请试试这个代码&nbsp;&nbsp;LinearLayout.LayoutParams&nbsp;params&nbsp;=&nbsp;new&nbsp;LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,&nbsp;100); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params.setMargins(0,&nbsp;5,&nbsp;5,&nbsp;10); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.setLayoutParams(params);您可以在此行中添加您的特定边距&nbsp;params.setMargins(0, 5, 5, 10);
随时随地看视频慕课网APP

相关分类

Java
我要回答