Задать вопрос
  • Как добавить изображения в python.exe?

    @xaiponews
    К сожалению, напрямую вставлять изображения в исполняемый файл Python нельзя. Однако вы можете поместить изображения в отдельную папку и упаковать их вместе с исполняемым файлом с помощью таких инструментов, как PyInstaller или PyOxidizer.

    Вот как вы можете использовать PyInstaller для упаковки кода Python вместе с изображениями:

    1. Установите PyInstaller: вы можете установить PyInstaller с помощью pip, который является менеджером пакетов Python. Откройте терминал и введите следующую команду: pip install pyinstaller
    2. Организуйте свой код: убедитесь, что весь ваш код Python и файлы изображений находятся в одном каталоге.
    3. Создайте файл спецификации: PyInstaller требует файл спецификации, чтобы указать параметры для создания исполняемого файла. Откройте терминал и перейдите в каталог кода, затем введите следующую команду, чтобы создать файл спецификации:
    pyinstaller --name myprogram --add-data "path/to/images/*;." myprogram.py

    Это создаст файл спецификации с именем myprogram.spec. Опция --name указывает имя исполняемого файла, который будет создан. Параметр --add-data указывает путь к изображениям и указывает PyInstaller включить их в исполняемый файл.
    4.Соберите исполняемый файл. Получив спецификационный файл, вы можете использовать его для сборки исполняемого файла. Введите в терминал следующую команду: pyinstaller myprogram.spec
    Это создаст distкаталог, содержащий исполняемый файл и все необходимые файлы для его запуска, включая изображения.
    5.Распространите исполняемый файл: теперь вы можете передать исполняемый файл своему другу, и он сможет запустить его на своем компьютере без необходимости установки Python или каких-либо дополнительных библиотек.

    Обратите внимание, что результирующий исполняемый файл все равно будет довольно большим, поскольку он содержит изображения. Если у вас много больших изображений, может быть лучше хранить их вне исполняемого файла и динамически загружать во время выполнения.

    И еще:
    После установки PyInstaller вы можете использовать его для создания одного исполняемого файла из вашего скрипта Python, включая все его зависимости. Чтобы включить изображения в исполняемый файл, вам нужно указать их как файлы данных в команде PyInstaller.

    Вот пример команды для создания одного исполняемого файла для вашего скрипта с помощью PyInstaller, включая изображения:
    pyinstaller --onefile --windowed --add-data "2. Image/*.png:2. Image" your_script_name.py


    Эта команда создаст один исполняемый файл с именем your_script_name.exe, который включает все необходимые зависимости и образы Python. Параметр --onefile сообщает PyInstaller, что нужно объединить все в один исполняемый файл, а --add-data параметр указывает расположение файлов изображений и способ их включения в исполняемый файл. Опция --windowed удаляет окно консоли и создает исполняемый файл только с графическим интерфейсом. Вам нужно будет заменить «your_script_name.py» на фактическое имя вашего скрипта Python.

    После запуска команды PyInstaller вы должны найти единственный исполняемый файл в dist каталоге. Вы можете отправить этот файл своему другу, и он сможет без проблем запустить его.
    Ответ написан
    Комментировать
  • Какую команду использовать для перезапуска метода Random после проверки?

    @xaiponews Автор вопроса
    Решение найдено, меняем if на while, добавляем строки передачи результата, чтобы процесс не зациклился
    dopolnitelnyvyvod.setText(String.valueOf(getRandomNumber2()));
                    dopolnitelnyvyvod2.setText(String.valueOf(getRandomNumber2()));
                    ds = dopolnitelnyvyvod.getText().toString();
                    ds2 = dopolnitelnyvyvod2.getText().toString();
                    while (ds.equals(ds2)){
                        dopolnitelnyvyvod2.setText(String.valueOf(getRandomNumber2()));
     ds = dopolnitelnyvyvod.getText().toString();
                    ds2 = dopolnitelnyvyvod2.getText().toString();
                    }
     private ArrayList<Integer> getRandomNumber2() {
            ArrayList<Integer> mfoo2foo = new ArrayList<>();
                double random = Math.floor(Math.random() * 300);
                if (random < 100) {
                    mfoo2foo.add(1);
                } else if (random < 200) {
                    mfoo2foo.add(2);
                } else if (random <300) {
                    mfoo2foo.add(3);
                }
            return mfoo2foo;
        }
    Ответ написан
    Комментировать
  • Как в Android Studio задать одинаковый размер для всех кнопок?

    @xaiponews
    Размеры кнопок задаются в атрибутах стиля кнопки layout_width="30dp" и layout_height="160dp"
    Ответ написан
    Комментировать
  • Как выделить фрагменты текста и визуально обозначить их в блоки?

    @xaiponews
    В превью активити выбери TextView где будет выделятся текст, потом в атрибутах найди параметр textIsSelectable, поставь галочку, появится true, и ты сможешь выделять текст.
    Ответ написан
    Комментировать
  • Как передать одно содержимое из одинаковых атрибутов HTML с помощью Jsoup?

    @xaiponews Автор вопроса
    Может кому пригодится, вот ответ. Код должен выглядеть так:

    String string = elements.select("a[ClassName05]").attr("href")
    Ответ написан
    Комментировать
  • Как указать, чтобы загрузка осуществлялась в галерею?

    @xaiponews Автор вопроса
    Решение
    @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
    
            final WebView.HitTestResult webViewHitTestResult = webView.getHitTestResult();
            if (webViewHitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE || webViewHitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE){
                
                menu.add("Сохранить изображение").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
    
                        String downloadImg = webViewHitTestResult.getExtra();
                        if (URLUtil.isValidUrl(downloadImg)){
                            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadImg));
                            request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
                            request.setAllowedOverRoaming(false);
                            request.setTitle("GadgetSaint Downloading " + "Sample" + ".png");
                            request.setDescription("Downloading " + "Sample" + ".png");
                            request.setVisibleInDownloadsUi(true);
                            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "/GadgetSaint/"  + "/" + "Sample" + ".png");
                            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION);
                            DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                            downloadManager.enqueue(request);
                        }
                        return false;
                    }
                });
            }
        }
    Ответ написан
    Комментировать
  • Как открыть изображение из webviev в новом activity?

    @xaiponews Автор вопроса
    Вот решение

    @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
    
            final WebView.HitTestResult webViewHitTestResult = webView.getHitTestResult();
            if (webViewHitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE || webViewHitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE){
                
                menu.add("Сохранить изображение").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
    
                        String downloadImg = webViewHitTestResult.getExtra();
                        if (URLUtil.isValidUrl(downloadImg)){
                            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadImg));
                            request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
                            request.setAllowedOverRoaming(false);
                            request.setTitle("GadgetSaint Downloading " + "Sample" + ".png");
                            request.setDescription("Downloading " + "Sample" + ".png");
                            request.setVisibleInDownloadsUi(true);
                            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "/GadgetSaint/"  + "/" + "Sample" + ".png");
                            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION);
                            DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                            downloadManager.enqueue(request);
                        }
                        return false;
                    }
                });
            }
        }
    Ответ написан
    Комментировать
  • Как добавить кнопку для открытия сайта?

    @xaiponews Автор вопроса
    public class MainActivity extends AppCompatActivity {
        private WebView webView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button butacc = findViewById(R.id.butacc);
            butacc.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    webView.loadUrl("http://ya.ru");
                }
            });
    Ответ написан
    Комментировать
  • Asynctask подчеркнута? что делать?

    @xaiponews
    Это значит что, Вы не можете вставить этот код в то место куда Вы хотите, т.е. он там работать не будит. Нужно найти правильное место или изменить логику кода.
    Ответ написан
    Комментировать