1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/YangsBryant-EnergyTree

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

EnergyTree

Подобие сбора энергии в АнтФорест

введите описание изображения здесь

Способ использования

Извлеките необходимые файлы: BallModel и TipsModel сущностные классы из папки module, а также класс EnergyTree компонента, а также требуемые item макеты и ресурсные файлы.

Описание центральной точки

По методу collectAnimator(final View view, boolean isRun) класса EnergyTree можно понять, что конечной точкой движения шара является центральная точка этого макета, то есть mHeight / 2 и mWidth / 2 - 60. Вы можете изменить центральную точку в соответствии со своими требованиями.

Другие примечания

Параметры isCollectBall и isCollectTips позволяют контролировать возможность перемещения и исчезновения при нажатии на энергию шара или Tips сообщение соответственно.

Максимальное количество энергетических шаров — семь.

Максимальное количество Tips сообщений — четыре.

Строки 107 (ось X) и 108 (ось Y) класса EnergyTree позволяют регулировать положение осей XY для Tips сообщений.

Основной код

public class MainActivity extends AppCompatActivity {

    private EnergyTree mWaterFlake;
    private List<BallModel> mBallList;
    private List<TipsModel> mTipsList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
```        initData();
        mWaterFlake = findViewById(R.id.custom_view);
        Button mBtn = findViewById(R.id.btn);
        mBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mWaterFlake.setModelList(mBallList, mTipsList);
            }
        });
        mBtn.post(new Runnable() {
            @Override
            public void run() {
                mWaterFlake.setModelList(mBallList, mTipsList);
            }
        });        mWaterFlake.isCollectTips(false);
        mWaterFlake.setOnBallItemListener(new EnergyTree.OnBallItemListener() {
            @Override
            public void onItemClick(BallModel ballModel) {
                Toast.makeText(MainActivity.this, "Собрано " + ballModel.getValue() + " единиц энергии", Toast.LENGTH_SHORT).show();
            }
        });

        mWaterFlake.setOnTipsItemListener(new EnergyTree.OnTipsItemListener() {
            @Override
            public void onItemClick(TipsModel tipsModel) {
                Toast.makeText(MainActivity.this, tipsModel.getContent(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}
``````java
    private void initData() {
        mBallList = new ArrayList<>();
        mBallList.add(new BallModel("энергия", "5 ед."));
        mBallList.add(new BallModel("энергия", "7 ед."));
        mBallList.add(new BallModel("энергия", "15 ед."));
        mBallList.add(new BallModel("энергия", "1 ед."));
        mBallList.add(new BallModel("энергия", "2 ед."));
        mBallList.add(new BallModel("энергия", "9 ед."));
        mBallList.add(new BallModel("энергия", "9 ед."));
        mTipsList = new ArrayList<>();
        mTipsList.add(new TipsModel("Подсказка: недостаток воды"));
        mTipsList.add(new TipsModel("Подсказка: сильный ветер"));
        mTipsList.add(new TipsModel("Подсказка: ливень"));
        mTipsList.add(new TipsModel("Подсказка: засуха"));
    }

}

Основной макет

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@mipmap/background">
```    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@mipmap/tree" />
    </LinearLayout>
    <com.bryant.EnergyTree
        android:id="@+id/custom_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="bottom"
        android:padding="10dp">
        <Button
           android:id="@+id/btn"
           android:text="Сбросить"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
        />
    </LinearLayout>
</RelativeLayout>

Контакт QQ: 961606042


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/YangsBryant-EnergyTree.git
git@api.gitlife.ru:oschina-mirror/YangsBryant-EnergyTree.git
oschina-mirror
YangsBryant-EnergyTree
YangsBryant-EnergyTree
masters