无法更改图像大小

Unable to change image size

我在 BoxLayout 中使用图像,其中 size_hint_y 设置为 None 图像似乎对任何改变大小的尝试都没有反应, 我怀疑这个问题只出现在使用 size_hint_y:None

如果我删除 size_hint_y 参数,它工作正常,但这样做会影响其他小部件的定位,所以我如何在不避免 size_hint_y:None 参数的情况下执行此操作

代码

from kivy.app import App
from kivy.lang import Builder

Kv=("""

BoxLayout:
    orientation:'vertical'
    size_hint_y:None
    height:self.minimum_height 
    spacing:5
    
    BoxLayout:
        orientation:'vertical' 
        size_hint_y:None
        height:self.minimum_height     
        spacing:20            
        
        Image:
                 
            size_hint:None,None
            source:"/storage/3666-3432/Download/Lion.jpg"                       

      

""")

class MyApp(App):
    def build(self):
        return Builder.load_string(Kv)
        
MyApp().run()

编辑

from kivy.app import App
from kivy.lang import Builder

Kv=("""


ScrollView:
    BoxLayout:
        orientation:'vertical'
        size_hint_y:None
        height:self.minimum_height 
        spacing:5
    
        BoxLayout:
            orientation:'vertical' 
            size_hint_y:None
            height:self.minimum_height     
            spacing:20            
        
            Image:
                height:2000
                size_hint:None,None
                source:"/storage/3666-3432/Download/Lion.jpg"                       

      

""")

class MyApp(App):
    def build(self):
        return Builder.load_string(Kv)
        
MyApp().run()

在上面的代码中你可以看到当使用高度参数时,图像大小没有改变,而是在图像的两边创建了一个巨大的space

您将 Image height 设置为 2000,因此 Image 小部件将具有 2000 的 heightwidth Image 将是默认值 100,因为您没有设置该值,而 size_hint_x 对于 ImageNone。但是,默认情况下,Image 小部件具有 Falseallow_stretchTruekeep_ratio,因此纹理将是 100 宽和适当比例的高度(不是 2000)。

我不完全确定你想要完成什么,但如果你想让 Image 伸展,你应该将 allow_stretch: True 添加到 Image 并添加一个widthImage,或将 size_hint:None,None 更改为 size_hint:1,None