Как имитировать нажатую кнопку в Android Studio при верстке
Как имитировать нажатую кнопку в Android Studio при верстке не запуская приложение и не нажимая кнопку? То есть я хочу видеть сразу как меняется стиль кнопки, в зависимости от того нажата она или нет, не запуская само приложение?
- android
- android-studio
Вы можете это сделать через стили. Добавляем цвета:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#ffffffff</color> <color name="darkwhite">#ffeeeeee</color> <color name="transparent">#00ffffff</color> <color name="semitransparent">#88000000</color> <color name="orange">#ffff8800</color> <color name="light_orange">#ffe27d18</color> <color name="light_blue">#ff00a2e8</color> <color name="black">#ff000000</color> <color name="menuButtonColor">#ffea8e44</color> </resources>
Далее создаем файл в папке drawable где будет описано что кнопка нажата:
<?xml version="1. 0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/light_orange" android:state_pressed="true"/> <item android:drawable="@color/orange"/> </selector>
и дальше прикрепляем этот файл drawable к кнопке в xml:
<Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="58dp" android:text="how_it_works_button_title" android:background="@drawable/my_button_selector" />
Дальше смотрим в визуальный редактор в Android Studio и подгоняем то как нужно чтобы выглядела наша кнопка.
UPDATE
Для того чтобы посмотреть на нажатую кнопку, нужно в итоге получить такой drawable файл:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/light_orange" android:state_pressed="true"/> <item android:drawable="@color/light_orange" android:state_pressed="true"/> </selector>
но потом не забудьте тег android:state_pressed="true"
убрать в одном из item чтобы кнопка имела два состояния.
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
python — Как делать действие постоянно пока кнопка нажата PyQt5?
Если я вас правильно понял, то предложу отказаться от кнопок в пользу, например, QSlider
.
Тогда ваша задача может выглядеть примерно так:
import sys from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.Qt import * class Label(QLabel): def __init__(self, parent=None): super(Label, self).__init__(parent) self.px = 0 self.py = 15 self._direction = Qt.LeftToRight self.setWordWrap(True) self.timer = QTimer(self) self.timer.timeout.connect(self.update) self.timer.start(40) self._speed = 2 self.textLength = 0 self.fontPointSize = 0 self.setAlignment(Qt.AlignVCenter) self.setFixedHeight(self.fontMetrics().height()) def updateCoordinates(self): align = self.alignment() if align == Qt.AlignTop: self.py = 10 elif align == Qt.AlignBottom: self.py = self.height() - 10 elif align == Qt.AlignVCenter: self.py = self.height() / 2 self.fontPointSize = self.font().pointSize() / 2 self.textLength = self.fontMetrics().width(self.text()) def setAlignment(self, alignment): self.updateCoordinates() QLabel.setAlignment(self, alignment) def resizeEvent(self, event): self.updateCoordinates() QLabel.resizeEvent(self, event) def paintEvent(self, event): painter = QPainter(self) if self._direction == Qt.RightToLeft: self.px -= self.speed() if self.px <= -self.textLength: self.px = self.width() else: self.px += self.speed() if self.px >= self.width(): self.px = -self.textLength painter.drawText(self.px, self.py + self.fontPointSize, self.text()) painter.translate(self.px, 0) def speed(self): return self._speed def setSpeed(self, speed): self._speed = speed def setDirection(self, direction): self._direction = direction if self._direction == Qt. RightToLeft: self.px = self.width() - self.textLength else: self.px = 0 self.update() def pause(self): self.timer.stop() def unpause(self): self.timer.start() class MainWindow(QWidget): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.marqueeLabel = Label(self) le = QLineEdit(self) le.textChanged.connect(self.marqueeLabel.setText) le.setText("""Чтобы было понятно, представьте, что эти кнопки как \ газ и тормоз в машине - примерно так же должны работать.""") slider = QSlider(Qt.Horizontal, self) slider.valueChanged.connect(self.marqueeLabel.setSpeed) slider.setValue(10) rtl = QRadioButton("Right to Left", self) ltr = QRadioButton("Left to Rigth", self) rtl.toggled.connect(lambda state: self.marqueeLabel.setDirection(Qt.RightToLeft if state else Qt.LeftToRight)) ltr.setChecked(True) directionWidget = QWidget(self) directionWidget.setLayout(QHBoxLayout()) directionWidget.layout().setContentsMargins(0, 0, 0, 0) directionWidget.layout().addWidget(rtl) directionWidget.layout().addWidget(ltr) pauseBtn = QPushButton("Остановить", self) pauseBtn.setCheckable(True) pauseBtn.toggled.connect( lambda state: self.marqueeLabel.pause() if state else self.marqueeLabel.unpause()) pauseBtn.toggled.connect( lambda state: pauseBtn.setText("Продолжить") if state else pauseBtn.setText("Остановить")) flayout = QFormLayout() flayout.addRow("Изменить текст", le) flayout.addRow("Изменить скорость", slider) flayout.addRow("Направление движения", directionWidget) flayout.addRow("Движение", pauseBtn) self.layout = QVBoxLayout(self) self.layout.addLayout(flayout) self.layout.addWidget(self.marqueeLabel) if __name__ == '__main__': import sys app = QApplication(sys. argv) app.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold)) w = MainWindow() w.show() sys.exit(app.exec_())
Нажатая вручную кнопка — Etsy Турция
Etsy больше не поддерживает старые версии вашего веб-браузера, чтобы обеспечить безопасность пользовательских данных. Пожалуйста, обновите до последней версии.
Воспользуйтесь всеми преимуществами нашего сайта, включив JavaScript.
Найдите что-нибудь памятное, присоединяйтесь к сообществу, делающему добро.
( 236 релевантных результатов, с рекламой Продавцы, желающие расширить свой бизнес и привлечь больше заинтересованных покупателей, могут использовать рекламную платформу Etsy для продвижения своих товаров. Вы увидите результаты объявлений, основанные на таких факторах, как релевантность и сумма, которую продавцы платят за клик.aria-pressed — Доступность | MDN
Атрибут aria-pressed
указывает текущее «нажатое» состояние кнопки-переключателя.
Добавление aria-pressed
к элементу с ролью кнопки
превращает кнопку в кнопку-переключатель. Атрибут aria-pressed
актуален только для кнопок-переключателей. Он представляет текущее «нажатое» состояние кнопки.
Значение «tri-state», что означает, что значение может быть установлено на true
, false
, смешанный
или undefined
значений. В случае aria-pressed
, как и для большинства типов значений с тремя состояниями, значение по умолчанию равно 9.0138 не определено .
Кнопки-переключатели требуют полного цикла нажатия и отпускания, чтобы изменить их значение. Однократное нажатие и отпускание изменяет значение на true
. Если ее снова нажать и отпустить, значение снова изменится на false
.
Значение , смешанное с
, означает, что значения более чем одного элемента, управляемого кнопкой, не имеют одинакового значения.
Не изменять содержимое метки переключателя при изменении состояния. Если метка кнопки говорит «пауза», не меняйте ее на «воспроизведение» при нажатии. В этом примере, когда нажатое состояние истинно, метка остается «Пауза», поэтому программа чтения с экрана скажет что-то вроде «Кнопка переключения паузы нажата».
Если вы хотите, чтобы метка переключалась между «Пауза» и «Воспроизведение», не используйте aria-pressed
.
Первое правило использования ARIA: «Если вы можете использовать нативную функцию с уже встроенной семантикой и поведением, которые вам нужны, вместо того, чтобы перепрофилировать элемент и добавлять роль, состояние или свойство ARIA, чтобы сделать его доступным, тогда сделайте это. .» Если мы используем собственную семантику HTML с
, мы можем переключать метку вместо переключения нажатого состояния, устраняя необходимость в aria-pressed
атрибут.