Add voice anim

pull/102/head
FongMi 4 years ago
parent 42ca19a4a3
commit abe921cbc4
  1. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomHorizontalGridView.java
  3. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java
  4. 11
      app/src/leanback/res/anim/voice.xml
  5. 7
      app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java

@ -11,6 +11,7 @@ import android.speech.SpeechRecognizer;
import android.text.Editable;
import android.text.TextUtils;
import android.view.View;
import android.view.animation.Animation;
import android.view.inputmethod.EditorInfo;
import androidx.activity.result.ActivityResultLauncher;
@ -24,6 +25,7 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.CustomListener;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Hot;
import com.fongmi.android.tv.bean.Result;
@ -64,6 +66,7 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick
private ExecutorService mService;
private List<Site> mSites;
private Handler mHandler;
private Animation mBlink;
private String getKeyword() {
return getIntent().getStringExtra("keyword");
@ -98,6 +101,7 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick
@Override
protected void initView() {
mBlink = ResUtil.getAnim(R.anim.voice);
mHandler = new Handler(Looper.getMainLooper());
mRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
mBinding.voice.setVisibility(hasVoice() ? View.VISIBLE : View.GONE);
@ -131,6 +135,7 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick
@Override
public void onResults(String result) {
mBinding.search.requestFocus();
mBinding.voice.clearAnimation();
mBinding.keyword.setText(result);
mBinding.keyword.setSelection(result.length());
}
@ -185,6 +190,7 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick
} else {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
mBinding.voice.startAnimation(mBlink);
mRecognizer.startListening(intent);
}
}

@ -8,13 +8,13 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.leanback.widget.HorizontalGridView;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.utils.ResUtil;
public class CustomHorizontalGridView extends HorizontalGridView {
@ -35,7 +35,7 @@ public class CustomHorizontalGridView extends HorizontalGridView {
@Override
protected void initAttributes(@NonNull Context context, @Nullable AttributeSet attrs) {
super.initAttributes(context, attrs);
this.shake = AnimationUtils.loadAnimation(getContext(), R.anim.shake);
this.shake = ResUtil.getAnim(R.anim.shake);
}
@Override

@ -10,13 +10,13 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewpager.widget.ViewPager;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.utils.ResUtil;
public class CustomViewPager extends ViewPager {
@ -34,7 +34,7 @@ public class CustomViewPager extends ViewPager {
private void init() {
this.rect = new Rect();
this.shake = AnimationUtils.loadAnimation(getContext(), R.anim.shake);
this.shake = ResUtil.getAnim(R.anim.shake);
setPageTransformer(false, (page, position) -> {
page.setTranslationX(page.getWidth() * -position);
if (position <= -1 || position >= 1) {

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="500"
android:fromAlpha="0.3"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toAlpha="1.0" />
</set>

@ -2,7 +2,10 @@ package com.fongmi.android.tv.utils;
import android.graphics.drawable.Drawable;
import android.util.DisplayMetrics;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import androidx.annotation.AnimRes;
import androidx.annotation.ArrayRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.StringRes;
@ -39,4 +42,8 @@ public class ResUtil {
public static Drawable getDrawable(@DrawableRes int resId) {
return ContextCompat.getDrawable(App.get(), resId);
}
public static Animation getAnim(@AnimRes int resId) {
return AnimationUtils.loadAnimation(App.get(), resId);
}
}

Loading…
Cancel
Save