Intereting Posts
PutExtra treeMap возвращает HashMap нельзя отбрасывать в TreeMap android Android: как программно установить тему Activity в Theme.Dialog Android: Сгенерированный QR-код с использованием Zxing имеет поля (не подходит для области) Преобразовать строку в массив байтов, а затем вернуться к исходной строке Больше пространства между строками в TextView Каков правильный способ установки приложения Android при использовании параметров аромата? Андроидная камера setDisplayOrientation (90) не работает на разных устройствах Удалить дорожку прокрутки из ScrollView в Android Перетаскивание, ListView и элемент Представления, которые пропускают событие ACTION_DRAG_STARTED Возможно ли создать таблицу sqlite во время выполнения на основе количества элементов в массиве Вкладка «Графическая компоновка» не отображается для некоторых файлов макета в Eclipse Виртуальные сообщения Google – GCM – SERVICE_NOT_AVAILABLE Google Maps Android API v2, как удалить Полилинии с карты? Камера не переопределяет старое изображение, если изменения ориентации SoftKeyboard открыть и закрыть прослушиватель в Android-приложении?

Как создать эффект пульсации для предварительного леденца

Как применить эффект пульсации, подобный этому

Я установил зависимости в app / build.gradle

Приложение / build.gradle

dependencies { compile 'com.github.traex.rippleeffect:library:1.3' } 

build.gradle

 allprojects{ repositories{ jcenter() maven(url "https://jitpack.io" } 

XML-файл:

 <com.andexert.library.RippleView android:id="@+id/rect1" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/enterButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Save your user name" /> </com.andexert.library.RippleView> 

Файл класса Java

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.save_user); editText=(EditText) findViewById(R.id.userNameEditText); button=(Button) findViewById(R.id.enterButton); sharedPreferences=getSharedPreferences(SHARED_NAME_STRING, MODE_PRIVATE); String userNameString=sharedPreferences.getString(USER_NAME_STRING, ""); editText.setText(userNameString); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String string=editText.getText().toString(); Intent intent=new Intent(SaveUser.this, MainActivity.class); intent.putExtra("user", string); SharedPreferences.Editor editor=sharedPreferences.edit(); editor.putString(USER_NAME_STRING, string); editor.commit(); startActivity(intent); } }); } 

Он работает, но моя проблема заключается в том, что другая деятельность открывается до того, как эффект пульсации завершается, и когда я нажимаю кнопку «Назад», оставшаяся пульсация завершается. Как я могу его решить?

Solutions Collecting From Web of "Как создать эффект пульсации для предварительного леденца"

Вы можете попробовать эту библиотеку balysv / material-ripple .

В градиенте добавьте эту строку:

 compile 'com.balysv:material-ripple:1.0.2' 

И вот как это сделать:

 <com.balysv.materialripple.MaterialRippleLayout android:id="@+id/ripple" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Button inside a ripple"/> </com.balysv.materialripple.MaterialRippleLayout> 

Для lollipop (API> 21) создайте файл как btn_ripple_effect.xml в drawable-v21 и поставьте ниже код

  <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:color="?android:colorAccent" tools:targetApi="lollipop"> <item android:drawable="@color/cancel_btn_clr" /> <!-- default --> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="?android:colorAccent" /> </shape> </item> </ripple> 

Для pre lollipop (API <21) создайте файл как btn_ripple_effect.xml в папке с возможностью переноса и поставьте ниже код

 <item android:state_pressed="true"> <shape> <solid android:color="@color/colorAccent"></solid> </shape> </item> <item> <shape> <solid android:color="@color/cancel_btn_clr"></solid> </shape> </item> 

Создать кнопку, как показано ниже

 <Button android:id="@+id/button3" style="@style/cancel_btn_style" android:layout_marginLeft="50dp" android:text="Cancel" /> 

Добавьте это в свой стиль.xml

  <style name="cancel_btn_style" parent="Theme.AppCompat"> <item name="android:textSize">15sp</item> <item name="android:textColor">#ffffff</item> <item name="android:layout_height">36dp</item> <item name="android:layout_width">90dp</item> <item name="android:background">@drawable/btn_ripple_effect</item> 

Я знаю, что это старо, но вы можете выполнять свое действие в onRippleCompleteListener, предоставляемом библиотекой. Что-то вроде :

 rippleView.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() { @Override public void onComplete(RippleView rippleView) { //Your code here... } }); 

Надеюсь это поможет. 🙂

Использовать библиотеку appcompat

 com.android.support:appcompat-v7:22.1.1 

Расширение "Base.TextAppearance.AppCompat.Button"

 <style name="BrowseContentButton" parent="Base.TextAppearance.AppCompat.Button"> <item name="android:textColor">@color/grey_0</item> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">48dp</item> </style> 

Применить стиль

  <Button android:id="@+id/browseMultimedia" style="@style/BrowseContentButton" android:layout_below="@id/browseGuidelines" android:layout_toRightOf="@+id/divider" android:text="@string/browse_multimedia" />