活动中如何设置全屏背景图像?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我看到许多应用程序使用全屏图像作为背景。这就是一个例子:

我想在一个项目中使用这个,到目前为止我找到的最好的方法是使用一个大尺寸的图像,把它放在ImageView和使用android: adjustViewBounds="true"调整页边距

问题是,如果屏幕的分辨率很高,图像就会出现问题。

我想到的另一个选项是在FrameLayout,与match_parentwidthheight作为背景...这延伸了图像,但我认为效果不是很好。

你会怎么做?

提问于
用户回答回答于

备选案文1:

为不同的dpi创建不同的完美图像,并将它们放在相关的可绘图文件夹中。然后设置

android:background="@drawable/your_image

备选案文2:

添加一个大图像。使用FrameLayout。添加一个ImageView。在ImageView中设置以下内容。

android:src="@drawable/your_image"
android:scaleType = "centerCrop"
用户回答回答于

另一个选项是在可绘图中添加一个图像(让我们将其命名为backgroung.jpg),创建一个ImageView iv_在XML根目录中没有“src”属性的背景。然后在相应活动的onCreate方法中:

    /* create a full screen window */
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.your_activity);

    /* adapt the image to the size of the display */
    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(
      getResources(),R.drawable.background),size.x,size.y,true);

    /* fill the background ImageView with the resized image */
    ImageView iv_background = (ImageView) findViewById(R.id.iv_background);
    iv_background.setImageBitmap(bmp);

扫码关注云+社区