Приложение для увеличения количества лайков в HarmonyOS, поддерживающее как текст, так и изображения.
Метод 1:
Создайте HAR-пакет с помощью библиотеки, затем добавьте его в папку libs.
Добавьте следующий код в файл gradle entry:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Метод 2:
allprojects {
repositories {
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:GoodView_library:1.0.0'
Используйте DevEco Studio и скачайте SDK. Измените версию dependencies → classpath в файле build.gradle проекта на соответствующую версию (то есть ту, которая используется при создании нового проекта в вашей IDE).
/**
* Пример реализации кнопки лайка
*/
public class MainAbilitySlice extends AbilitySlice {```java
GoodView mGoodView;
Image image111;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
image111 = new Image(this);
Image image1 = (Image) findComponentById(ResourceTable.Id_good);
Image image2 = (Image) findComponentById(ResourceTable.Id_good2);
Image image3 = (Image) findComponentById(ResourceTable.Id_good3);
Image image4 = (Image) findComponentById(ResourceTable.Id_good4);
Button btnReset = (Button) findComponentById(ResourceTable.Id_btn_reset);
image1.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
LogUtil.error(this.getClass().getName(), "1====show===" + component.getLocationOnScreen()[0] + "," + component.getLocationOnScreen()[1] + ",");
mGoodView = new GoodView(MainAbilitySlice.this, image111, 30, 30);
image1.setImageAndDecodeBounds(ResourceTable.Media_good_checked);
mGoodView.setText("+1");
int offsetX = component.getLocationOnScreen()[0] + 150;
int offsetY = component.getLocationOnScreen()[1] + 80;
mGoodView.show(component, offsetX, offsetY);
}
});
image2.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
try {
LogUtil.error(this.getClass().getName(), "1====show===" + component.getLocationOnScreen()[0] + "," + component.getLocationOnScreen()[1] + ",");
mGoodView = new GoodView(MainAbilitySlice.this, image111, 100, 100);
image2.setImageAndDecodeBounds(ResourceTable.Media_good_checked);
mGoodView.setImage(new PixelMapElement(component.getResourceManager().getResource(ResourceTable.Media_good_checked)));
mGoodView.show(component, 0, 0);
} catch (IOException e) {
e.printStackTrace();
} catch (NotExistException e) {
e.printStackTrace();
}
}
});
}
}
});
``````java
image3.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
LogUtil.error(this.getClass().getName(), "1====show===" + component.getLocationOnScreen()[0] + "," + component.getLocationOnScreen()[1] + ",");
mGoodView = new GoodView(MainAbilitySlice.this, image111, 120, 30);
image3.setImageAndDecodeBounds(ResourceTable.Media_collection_checked);
mGoodView.setTextInfo("Successfully added to bookmarks", 0xfff66467, 20);
int offsetX = component.getLocationOnScreen()[0] + 120;
int offsetY = component.getLocationOnScreen()[1] + 80;
mGoodView.show(component, offsetX, offsetY);
}
});
image4.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
LogUtil.error(this.getClass().getName(), "1====show===" + component.getLocationOnScreen()[0] + "," + component.getLocationOnScreen()[1] + ",");
mGoodView = new GoodView(MainAbilitySlice.this, image111, 120, 30);
image4.setImageAndDecodeBounds(ResourceTable.Media_bookmark_checked);
mGoodView.setTextInfo("Successfully added to bookmarks", 0xffff941a, 20);
int offsetX = component.getLocationOnScreen()[0] + 120;
int offsetY = component.getLocationOnScreen()[1] + 80;
mGoodView.show(component, offsetX, offsetY);
}
});
btnReset.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
image1.setImageAndDecodeBounds(ResourceTable.Media_good);
image2.setImageAndDecodeBounds(ResourceTable.Media_good);
image3.setImageAndDecodeBounds(ResourceTable.Media_collection);
image4.setImageAndDecodeBounds(ResourceTable.Media_bookmark);
}
});
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
``````markdown
## ЛицензияАвторское право © 2016 venshine.cn@gmail.com
Разрешено с условиями лицензии Apache, версия 2.0 ("Лицензия");
вы не можете использовать этот файл, если вы не будете следовать за Лицензией.
Вы можете получить копию Лицензии по адресу
http://www.apache.org/licenses/LICENSE-2.0
Если применимыми законом или письменно согласовано, программное обеспечение,
распространяемое в рамках Лицензии, распространяется на условиях "КАК ЕСТЬ",
БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ВОПРОЧЬ ЭТОГО.
Увидеть Лицензию для конкретного языка, регулирующего права использования и ограничения, предусмотренные Лицензией.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )