在Android中将背景图像居中

我有一个约100×100的背景图像,我想在Android应用程序的中心。 有没有办法做到这一点?

我认为这将大大帮助简单的应用程序的方向变化。

  • 在recyclerview中更改所选项目的背景颜色
  • 像及时闹钟应用程序的animation背景
  • 如何定位径向渐变背景
  • 在运行时在Android上更改渐变背景颜色
  • 如何使图像填充RelativeLayout背景而不拉伸
  • 如何在不使用相机应用程序的情况下在后台捕捉图像
  • 如何更改Android警报对话框的背景?
  • Android:如何知道应用何时进入或“后台”模式?
  • 你可以使用BitmapDrawable的情况。 在res/drawable文件夹中创build居中的文件:

     <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/your_image" android:gravity="center"/> 

    然后你可以使用centered绘制作为背景。

    问题是老的,答案有一个很大的弱点 – 我们没有可能改变图像的大小,这意味着它完全依赖于我们所绘制的。

    在使用最新的Androiddevise库时,活动视图的根将是CoordinatorLayoutDrawerLayout ,这些布局没有默认视图,显示层次结构,这意味着第一个子视图将被任何下一个视图遮盖,第二个和第三个视图将被遮盖一。 所以要有居中的背景我们需要添加作为第一个孩子LinearLayout与中心的图像里面。 一些代码片段:

     <android.support.v4.widget.DrawerLayout> <!-- first child --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <ImageView android:layout_width="match_parent" android:layout_height="60dp" android:src="@drawable/some_background" /> </LinearLayout> ... next view will be above 

    我们可以完全自定义由LinearLayout重力选项居中的图像大小。 重要的是在LinearLayout宽度和高度上也有match_parent ,因为中心也是父视图的中心。

    同样的事情可以在RelativeLayout或其他任何允许子视图重叠的布局中完成。