match_parent和不按预期填充 - Android / XML

9 浏览
0 Comments

match_parent和不按预期填充 - Android / XML

我在ListView中有一个Youtube的缩略图/ImageView,我希望它能填充/拉伸到屏幕的边缘:



目前看起来似乎并没有这样做,而且在一些设备上,缩略图看起来很小。

HTC Butterfly的截图:

![enter image description here](https://i.stack.imgur.com/7ZMaF.png)

Galaxy S2的截图:

![enter image description here](https://i.stack.imgur.com/jkREi.png)

我不确定我做错了什么 - 欢迎任何建议。

home.xml:


    
    
    
    
    
        
            
        
        
            
                
            
            
                
                
                
            
        
    

list_item_user_video.xml:


    
    
    
        
        

JAVA:

private VideosListView listView;
listView = (VideosListView) findViewById(R.id.videosListView);
listView.setOnVideoClickListener(this);
private void populateListWithVideos(Message msg) {
    Library lib = (Library) msg.getData().get(GetYouTubeUserVideosTask.LIBRARY);
    listView.setVideos(lib.getVideos());
}

编辑:


    
    
    
        
        

编辑后的截图:

![enter image description here](https://i.stack.imgur.com/9qIzg.png)

0
0 Comments

问题的出现原因是android:adjustViewBounds属性的设置不正确。该属性控制ImageView是否根据其内容的宽高比自动调整大小。当android:adjustViewBounds="true"时,ImageView会根据内容的宽高比自动调整大小,而当android:adjustViewBounds="false"时,ImageView会根据布局中的android:layout_width和android:layout_height属性来确定大小。

解决方法是将android:adjustViewBounds属性的值从"true"改为"false",即将android:adjustViewBounds="true"改为android:adjustViewBounds="false"。这样就可以确保ImageView填充整个父布局,而不会根据内容的宽高比调整大小。

下面是修改后的代码示例:


这样修改后,ImageView将填充整个父布局,并且不会根据内容的宽高比调整大小。

0
0 Comments

问题出现的原因:

1. 由于UrlImageView从互联网获取图片,它如何在获取图片之前就知道图片的大小呢?

2. 在显示ListView的项的视图之前,您必须决定视图的高度。

3. android:adjustViewBounds="true"与android:scaleType="fitXY"不兼容,因为adjustViewBounds表示它将保持宽高比,而fitXY表示它不会保持宽高比。

4. 您需要决定什么对您来说更重要-拉伸图像还是保持宽高比。

解决方法:

1. 使用adjustViewBounds="false",scaleType="fitXY",并删除gravity属性,如果您不关心拉伸。

2. 如果您使用的是自定义视图"UrlImageView",请使用ImageView进行测试,并使用src属性引用您拥有的drawable资源。

文章内容如下:

在Android开发中,有一个关于match_parent和fill_parent属性不起作用的问题。这个问题的出现是由于UrlImageView在从互联网获取图片之前,无法确定图片的大小。在显示ListView的项的视图之前,您必须决定视图的高度。此外,android:adjustViewBounds="true"与android:scaleType="fitXY"不兼容,因为adjustViewBounds表示它将保持宽高比,而fitXY表示它不会保持宽高比。因此,您需要决定是拉伸图像还是保持宽高比对您来说更重要。

解决这个问题的方法是使用adjustViewBounds="false",scaleType="fitXY",并删除gravity属性,如果您不关心拉伸。另外,如果您使用的是自定义视图"UrlImageView",可以使用ImageView进行测试,并使用src属性引用您拥有的drawable资源。

这个问题不仅在Android开发中存在,而且在其他地方也同样存在。所以,为了解决这个问题,您可以先决定是否拉伸图像,然后采取相应的措施。同时,建议您观看关于ListView的讲座,以更好地理解和使用ListView。另外,如果您的应用不遵循Google的设计准则,即使它变得受欢迎,也很难在Play商店中被推荐。所以,请务必按照Android设计准则来设计您的应用程序。

总之,解决这个问题的关键是决定图像的大小和宽高比对您来说更重要。如果您遇到类似的问题,可以尝试上述的解决方法,并根据具体情况进行调整。希望这些信息对您有所帮助!

0