如何使图像适应手机屏幕

时间:2019-02-11 13:43:39

标签: android html css webview carousel

我在这里使用轮播示例:https://www.w3schools.com/bootstrap/bootstrap_carousel.asp 我从应用程序中得到了一些示例图像,这些图像是我从5.7英寸的带打印屏幕的手机上取下的,并向上移了通知栏(其中显示了信号等)。我试图使这些示例图像(轮播)与屏幕的高度和宽度相同,而无需用户,向下或向右滚动以查看完整的图像。因此,用户将看到一个操作栏(该应用程序有一个操作栏,因为它将在Web视图中打开)和轮播。我尝试更改图像的宽度和高度没有成功。

更新:基于Metatron5的答案,我更改了代码,该代码在适用于android的firefox中运行,但无法在android webview中识别vh和vw

<!DOCTYPE html>
    <html lang="en">
    <head>
      <title>Carousel</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
      <style>
    
    
      </style>
    </head>
    <body>
    
    
      
      <div id="myCarousel" class="carousel slide" data-ride="carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
          <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
          <li data-target="#myCarousel" data-slide-to="1"></li>
          <li data-target="#myCarousel" data-slide-to="2"></li>
          <li data-target="#myCarousel" data-slide-to="3"></li>
        </ol>
    
        <!-- Wrapper for slides -->
        <div class="carousel-inner">
          <div class="item active">
            <img src="begin.png" alt="" style="height: 100vh; width: 100vw;">
          </div>
    
          <div class="item">
            <img src="first.png" alt="" style="height: 100vh; width: 100vw;">
          </div>
        
          <div class="item">
            <img src="second.png" alt="" style="height: 100vh; width: 100vw;">
          </div>
    
          <div class="item">
            <img src="third.png" alt="" style="height: 100vh; width: 100vw;">
          </div>
        </div>
    
        <!-- Left and right controls -->
        <a class="left carousel-control" href="#myCarousel" data-slide="prev">
          <span class="glyphicon glyphicon-chevron-left"></span>
          <span class="sr-only">Previous</span>
        </a>
        <a class="right carousel-control" href="#myCarousel" data-slide="next">
          <span class="glyphicon glyphicon-chevron-right"></span>
          <span class="sr-only">Next</span>
        </a>
      </div>
    </div>
    
    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

就像在评论中一样,问题似乎在于电话上有一些Cashe,这是样式无法正常工作的原因。这样终于可以了,但是我想说明一下,Units vh和vw在Androit Webview中不起作用。

答案 1 :(得分:-1)

几个月前,我也遇到了同样的问题。 VHVW不在Google TV上运行。因此,我使用JavaScript解决了这个问题。尝试在脚本文件中添加以下代码:

const sliderImages= document.querySelectorAll('carousel-inner .item');

window.onload = function (e) {
    sliderImages.forEach(sliderImage=> {
        sliderImage.style.height = `${this.innerHeight}px`;
        sliderImage.style.width = `${this.innerWidth}px`;
    });
}

window.onresize= function (e) {
    sliderImages.forEach(sliderImage=> {
        sliderImage.style.height = `${this.innerHeight}px`;
        sliderImage.style.width = `${this.innerWidth}px`;
    });
}