硬编码填充有效,但未引用尺寸

时间:2018-07-17 08:15:26

标签: android android-linearlayout layout-inflater android-inflate

我正在动态扩展视图以添加到线性布局。我面临的问题是,如果我从视图的XML中删除填充(我正在夸大),则会得到正确的结果。如果引用尺寸资源,则Imageview太小。目前,我正在通过消除填充来解决此问题,但我想问一下我为什么会发生这种情况以及我在哪里做错了。这是代码 查看“我正在充气”效果很好:

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/iv_thumb"
    android:layout_width="@dimen/thumb_image_size_width"
    android:layout_height="@dimen/thumb_image_size_height"
    android:background="@drawable/square_border_"
    android:scaleType="fitXY"
    android:text="" />

查看“我正在膨胀”不起作用:

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/iv_thumb"
    android:layout_width="@dimen/thumb_image_size_width"
    android:layout_height="@dimen/thumb_image_size_height"
    **android:padding="@dimen/ultra_narrow"**
    android:background="@drawable/square_border_"
    android:scaleType="fitXY"
    android:text="" />

用于将此ImageView膨胀并添加到LinearLayout的Java代码:

LinearLayout _attachmentPane = findViewById(R.id._attachments_pane);

LayoutInflater inflater = (LayoutInflater) DetailActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE);

ImageView  iv_thumb = (ImageView) inflater.inflate(R.layout.image_view_thumb, _attachmentPane, false);

...
Glide.with(DetailActivity.this).load(url_thumb).into(iv_thumb);
...

  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

params.setMargins(20,20,20,20);

_attachmentPane.addView(iv_thumb, params);

编辑: 有时,我也会得到参考尺寸的正确结果。这是与Glide或Android有关的问题吗?因为我正在使用Glide从Web加载图像。 附加输出: 具有参考的填充尺寸:@ dimen / ultra_narrow

不带填充: enter image description here

0 个答案:

没有答案