Ответы пользователя по тегу Android
  • Как задать цвет для кнопки с сохранением ripple-эффекта?

    bartwell
    @bartwell Автор вопроса
    Получилось реализовать так. Проверял на версиях ОС от 2.3.3 до 6.0.1, работает (разумеется ripple-эффект только от 5).

    Разметка:
    <android.support.v7.widget.AppCompatButton
    	style="@style/MyButton"
    	...
    	/>

    styles.xml:
    <style name="MyButton" parent="Widget.AppCompat.Button.Colored">
    	<item name="backgroundTint">@color/button_background_selector</item>
    	<item name="android:textColor">@color/button_text_selector</item>
    </style>

    button_background_selector.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_enabled="false" android:color="#555555"/>
        <item android:color="#00ff00"/>
    </selector>

    button_text_selector.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_enabled="false" android:color="#888888"/>
        <item android:color="#ffffff"/>
    </selector>
    Ответ написан
    Комментировать
  • Как исправить дергание у фиксированного заголовка при прокрутке списка?

    bartwell
    @bartwell Автор вопроса
    Сделал так:
    listView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    int action = event.getAction();
                    if (action == MotionEvent.ACTION_DOWN) {
                        startY = event.getY();
                    } else if (action == MotionEvent.ACTION_MOVE) {
                        float y = event.getY();
                        if(startY-y<-60){
                            mHeader.setVisibility(View.VISIBLE);
                        }else if(startY-y>60){
                            mHeader.setVisibility(View.GONE);
                        }
                    }
                    return false;
                }
            });
    Ответ написан
    Комментировать
  • Какой порекомендуете рабочий софт для снятия скриншот/видео с нерутованого смартфона?

    bartwell
    @bartwell
    Для видео на нерутованном устройстве лично у меня сработал только ASC.
    Ответ написан
    1 комментарий
  • Android: Простой пример загрузки изображений в GridView используя Android-Universal-Image-Loader?

    bartwell
    @bartwell
    Примерно так:
    1. Добавьте GridView в ваше приложение.
    2. Сделайте свой собственный кастомный адаптер к нему. Например, так:
    class MyGridAdapter extends BaseAdapter {
    	
    	Context context;
    	ArrayList<String> items;
    	
    	MyGridAdapter(Context context, ArrayList<String> items) {
    		this.context=context;
    		this.items=items;
    	}
    
    	@Override
    	public int getCount() {
    		return items.size();
    	}
    
    	@Override
    	public Object getItem(int arg0) {
    		return items.get(arg0);
    	}
    
    	@Override
    	public long getItemId(int position) {
    		return position;
    	}
    
    	@Override
    	public View getView(int position, View convertView, ViewGroup parent) {
    		ImageView imageView;
    		if (convertView == null) {
    			imageView = new ImageView(context);
    			imageView.setLayoutParams(new GridView.LayoutParams(93, 93));
    			imageView.setScaleType(ImageView.ScaleType.CENTER);
    		} else imageView=(ImageView) convertView;
    		
    		ImageLoader imageLoader = ImageLoader.getInstance();
    		imageLoader.init(ImageLoaderConfiguration.createDefault(context));
    		DisplayImageOptions options = new DisplayImageOptions.Builder()
    		                                       .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
    		                                       .cacheInMemory()
    		                                       .cacheOnDisc()
    		                                       .build();
    		imageLoader.displayImage(items.get(position), imageView, options);
    		
    		return imageView;
    	}
    	
    }

    3. Установить этот адаптер в ваш GridView:
    ArrayList<String> items = new ArrayList<String>();
    MyGridAdapter adapter = new MyGridAdapter(this, items);
    gridView.setAdapter(adapter);


    items в данном случае должен содержать список URL картинок.
    Ответ написан
  • Как отфильтровать вывод LogCat для ACRA?

    bartwell
    @bartwell Автор вопроса
    Вот мой вариант решения:
    logcatArguments = { "-t", "300", "MyAppTag:V", "System.err:V", "AndroidRuntime:V", "*:S" }
    Ответ написан
    Комментировать
  • Фильтрация кастомного ListView?

    bartwell
    @bartwell Автор вопроса
    Ну не просто: при включенном фильтре придется очищать ListView, заново заполнять его всеми записями и вызывать фильтр при каждом добавлении записей… Ну ладно, подход вроде понятен, спасибо за помощь.
    Ответ написан
  • ViewPager с фрагментами, жизненные циклы?

    bartwell
    @bartwell Автор вопроса
    То есть можно на выбор — либо сохранять в MainActivity теги созданных фрагментов и в адаптере в getItem() делать findFragmentByTag(), либо в том же getItem() получать каждый раз фрагменты с помощью Fragment.instantiate() и устанавливать для них setRetainInstance(true)? Я правильно понимаю? Если так, то как лучше делать?
    Ответ написан
  • Один класс парсера для разных активити?

    bartwell
    @bartwell Автор вопроса
    Ну да, в целом оно, вроде. Спасибо!
    Насчет возврата данных в активити — не совсем понятно как можно реализовать. В одном активити надо заполнять сложный ListView с кастомным адаптером, в другом — ImageView, в третьем набор TextView с выставлением visibility=gone при определенных условиях.
    Ответ написан
    Комментировать
  • Почему может не обновляться виджет из Activity?

    bartwell
    @bartwell Автор вопроса
    Ага, решил проблему. Пропустил в логах ошибку !!! FAILED BINDER TRANSACTION !!!. Ошибка возникает из-за того, что Bitmap не влазит во внутренний bundle. Исправил с помощью createScaledBitmap().
    Ответ написан
    Комментировать
  • Как синхронизировать метод?

    bartwell
    @bartwell Автор вопроса
    Со списком Uri мне не подходит: между звуками могут вызываться другие методы.
    Моя же задача состоит в том, что мне нужно отследить конец проигрывания мелодии и только после этого производить дальнейшие действия. Метод этот вызывается с помощью Method.invoke(). Соответственно, ждать нужно либо внутри метода либо сразу после invoke(), других вариантов нет. Но это один и тот же поток ведь…
    Ответ написан
    Комментировать
  • Как синхронизировать метод?

    bartwell
    @bartwell Автор вопроса
    Если у вас нет Looper'a в потоке, то даже без блокировок никаких колбеков вы не получите назад

    Looper есть и без блокировки OnCompletionListener() работает нормально.

    Скорее всего lock.wait(); блокирует поток и сообщения больше не обрабатываются, поэтому никаких колбеков бы больше не получаете

    Очень на то похоже. А как это исправить?
    Ответ написан