Таким образом, текст размыт при анимации его масштаба до 1.1 с использованием анимации в кивах. Я уверен, что это потому, что размер шрифта статичен все это время и в результате растягивается.
Есть ли способ увеличить размер текста, используя анимацию, сохраняя при этом ее четкость?
Я также заметил странную проблему, когда при увеличении все другие виджеты выше также выдвигаются. Я пытаюсь локализовать это. Это мой файл .kv.
Builder.load_string("""
#:import F kivy.factory.Factory
#:import HoverButton BasicUI.HoverButton
#:import changeTypeToId Database.changeTypeToId
#:import utils kivy.utils
<ChangeButton@HoverButton>:
background_color: 0, 0, 0, 1
markup: True
font_size: 32
size_hint: None, None
width: self.texture_size[0] + 5
height: self.texture_size[1] + 5 if self.texture_size[1] != 0 else 46
canvas.before:
PushMatrix:
Scale:
origin: self.x + 0.5*self.width, self.y + 0.5*self.height
x: self.scale
y: self.scale
canvas.after:
PopMatrix:
<SmallChangeButton@HoverButton>:
markup: True
font_size: 16
size_hint: None, None
width: self.texture_size[0] + 5
height: self.texture_size[1] + 5 if self.texture_size[1] != 0 else 24
background_color: 0, 0, 0, 1
on_enter: self.setFontSize(20)
on_leave: self.setFontSize(16)
<ChooseChangeScreen>:
FloatLayout:
Label:
x: 20
pos_hint: {"top": 1}
font_size: 40
size_hint: None, None
width: self.texture_size[0] + 5
font_name: "TitleFont"
text: "JARVIS"
Label:
font_size: 16
pos_hint: {"top": 1, "right": .98}
size_hint: None, None
width: self.texture_size[0] + 5
height: self.texture_size[1] + 50
color: utils.get_color_from_hex('#05eeff')
markup: True
text: "[b]Xari[/b]"
BoxLayout:
x: 20
pos_hint: { "top": .5}
size_hint_x: .5
size_hint_y: None
orientation: "vertical"
spacing: 3
ChangeButton:
text: "[i][b]ADD CHANGES[/i][/b]"
on_press:
root.manager.transition.direction = "right"
root.manager.transition.duration = .5
root.manager.current = 'MainMenu'
ChangeButton:
text: "[b][i]MODIFY CHANGES[/i][/b]"
SmallChangeButton:
SmallChangeButton:
""")
Анимации
def on_enter(self, *args):
self.initial_font = self.font_size
anim = Animation(font_size=self.font_size * 1.2, duration=.07)
anim.start(self)
def on_leave(self, *args):
anim = Animation(font_size=self.initial_font, duration=.07)
anim.start(self)