mic*_*ael 23 android background padding android-linearlayout
我有以下内容LinearLayout.我不明白的是,如果我将背景设置为另一个图像,则重置填充信息.有办法防止这种情况吗?
<LinearLayout android:id="@+id/aPanel"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:background="@drawable/bkground"
android:paddingLeft="15dp" android:paddingRight="15dp">
<!-- some children here -->
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
当我改变LinearLayout aPanel的背景可绘制时,我看到孩子的位置被移动了.
and*_*per 19
这是一个类似的问题.
简而言之,答案是:
public static void setViewBackgroundWithoutResettingPadding(final View v, final int backgroundResId) {
final int paddingBottom = v.getPaddingBottom(), paddingLeft = v.getPaddingLeft();
final int paddingRight = v.getPaddingRight(), paddingTop = v.getPaddingTop();
v.setBackgroundResource(backgroundResId);
v.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
}
Run Code Online (Sandbox Code Playgroud)
重置填充的原因是因为drawable可能是9-patch drawable.
| 归档时间: |
|
| 查看次数: |
8765 次 |
| 最近记录: |