我从外部网站提取图片并按固定尺寸框顺序显示每个图片。设置拉伸图像以填充框的约束,但保持纵横比。因为图像不总是与盒子的纵横比相匹配,所以我在图像周围得到白色条带。我无法弄清楚如何摆脱白色乐队。我尝试使用canvas.before尝试将盒子涂成黑色,但它没有用。
图像(和相关信息)是从Python推送的:
class TheBox(FloatLayout):
def update(self, *args):
..
..
if (total_count % 2) == 0:
if which_petL < quantity:
which_petL += 1
else:
which_petL = 0
self.ids.PetL_photo.source = str(Lphoto)
kv:
#:kivy 1.9.1
<TheBox>:
FloatLayout:
FloatLayout:
size: 810, 1080
pos_hint: {'center_x': .21}
AsyncImage:
id: PetL_photo
size_hint: None, None
size: 790, 770
pos_hint: {'center_x': .5, 'center_y': .64}
allow_stretch: True
keep_ratio: True
source:
..
..
结果:
http://cselman.com/20160209_093304.mp4
任何帮助?
canvas.before尝试:
#:kivy 1.9.1
<TheBox>:
FloatLayout:
FloatLayout:
size: 810, 1080
pos_hint: {'center_x': .21}
AsyncImage:
canvas.before:
Color:
rgb: (0, 0, 0)
id: PetL_photo
size_hint: None, None
size: 790, 770
pos_hint: {'center_x': .5, 'center_y': .64}
allow_stretch: True
keep_ratio: True
source:
和...
#:kivy 1.9.1
<TheBox>:
canvas.before:
Color:
rgb: (0, 0, 0)
FloatLayout:
FloatLayout:
size: 810, 1080
pos_hint: {'center_x': .21}
AsyncImage:
id: PetL_photo
size_hint: None, None
size: 790, 770
pos_hint: {'center_x': .5, 'center_y': .64}
allow_stretch: True
keep_ratio: True
source:
和...
#:kivy 1.9.1
<TheBox>:
FloatLayout:
FloatLayout:
size: 810, 1080
pos_hint: {'center_x': .21}
canvas.before:
Color:
rgb: (0, 0, 0)
AsyncImage:
id: PetL_photo
size_hint: None, None
size: 790, 770
pos_hint: {'center_x': .5, 'center_y': .64}
allow_stretch: True
keep_ratio: True
source:
答案 0 :(得分:1)
添加矩形是我所缺少的。
#:kivy 1.9.1
<TheBox>:
FloatLayout:
FloatLayout:
size: 810, 1080
pos_hint: {'center_x': .21}
AsyncImage:
canvas.before:
Color:
rgb: (0, 0, 0)
Rectangle:
pos: self.pos
size: self.size
id: PetL_photo
size_hint: None, None
size: 790, 770
pos_hint: {'center_x': .5, 'center_y': .64}
allow_stretch: True
keep_ratio: True
source: