Update search ui

pull/102/head
FongMi 4 years ago
parent 3f364b1f28
commit df5812f962
  1. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java
  2. 103
      app/src/leanback/res/layout/activity_search.xml
  3. 11
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java

@ -85,6 +85,7 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick
@Override
protected void initView() {
mHandler = new Handler(Looper.getMainLooper());
mBinding.keyword.requestFocus();
CustomKeyboard.init(mBinding);
setRecyclerView();
setViewModel();
@ -99,12 +100,6 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick
mBinding.search.setOnClickListener(view -> onSearch());
mBinding.clear.setOnClickListener(view -> mBinding.keyword.setText(""));
mBinding.remote.setOnClickListener(view -> PushActivity.start(this));
mBinding.voice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
mBinding.keyword.setOnEditorActionListener((textView, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE) mBinding.search.performClick();
return true;
@ -176,6 +171,7 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick
}
private void hideProgress() {
mBinding.clear.requestFocus();
mBinding.layout.setVisibility(View.VISIBLE);
mBinding.progressLayout.setVisibility(View.INVISIBLE);
}

@ -11,38 +11,59 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.fongmi.android.tv.ui.custom.CustomEditText
android:id="@+id/keyword"
<LinearLayout
android:id="@+id/searchBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="8dp"
android:hint="@string/search_hint"
android:imeOptions="actionDone"
android:inputType="textCapCharacters|textAutoCorrect|textAutoComplete"
android:letterSpacing="0.02"
android:maxLength="50"
android:nextFocusDown="@id/word"
android:paddingTop="0dp"
android:paddingBottom="12dp"
android:singleLine="true"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textCursorDrawable="@drawable/shape_cursor"
android:textSize="24sp" />
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/voice"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:layout_marginEnd="16dp"
android:background="@drawable/selector_mic"
android:focusable="true"
android:focusableInTouchMode="true"
android:scaleType="center"
android:src="@drawable/ic_voice" />
<com.fongmi.android.tv.ui.custom.CustomEditText
android:id="@+id/keyword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/white"
android:hint="@string/search_hint"
android:imeOptions="actionDone"
android:inputType="textCapCharacters|textAutoCorrect|textAutoComplete"
android:letterSpacing="0.02"
android:maxLength="50"
android:nextFocusDown="@id/word"
android:singleLine="true"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textCursorDrawable="@drawable/shape_cursor"
android:textSize="24sp" />
</LinearLayout>
<androidx.leanback.widget.VerticalGridView
android:id="@+id/word"
android:layout_width="240dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/keyword"
android:layout_below="@+id/searchBar"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_toStartOf="@+id/keyboard"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingStart="24dp"
android:paddingTop="12dp"
android:paddingEnd="12dp"
android:nextFocusUp="@id/keyword"
android:paddingBottom="24dp"
app:focusOutEnd="true"
app:focusOutFront="true" />
@ -51,13 +72,13 @@
android:id="@+id/keyboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/keyword"
android:layout_toEndOf="@+id/word"
android:layout_alignTop="@+id/word"
android:layout_alignParentEnd="true"
android:layout_marginEnd="24dp"
android:clipChildren="false"
android:clipToPadding="false"
android:nextFocusLeft="@id/word"
android:nextFocusUp="@id/keyword"
android:padding="12dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="10"
tools:itemCount="40"
@ -69,53 +90,47 @@
android:layout_below="@+id/keyboard"
android:layout_alignStart="@+id/keyboard"
android:layout_alignEnd="@+id/keyboard"
android:layout_marginTop="12dp"
android:layout_marginTop="16dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/voice"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:layout_marginEnd="16dp"
android:background="@drawable/selector_mic"
android:focusable="true"
android:focusableInTouchMode="true"
android:scaleType="center"
android:src="@drawable/ic_voice" />
<TextView
android:id="@+id/search"
android:layout_width="wrap_content"
android:id="@+id/clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/home_search"
android:gravity="center"
android:text="@string/search_clear"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/clear"
android:layout_width="wrap_content"
android:id="@+id/search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/search_clear"
android:gravity="center"
android:text="@string/home_search"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/remote"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:text="@string/search_remote"
android:textColor="@color/white"
android:textSize="18sp" />

@ -1,6 +1,6 @@
package com.fongmi.android.tv.utils;
import android.graphics.drawable.Drawable;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.widget.ImageView;
@ -25,20 +25,21 @@ public class ImgUtil {
public static void load(String vodName, String vodPic, ImageView view) {
float thumbnail = 0.3f * Prefers.getThumbnail() + 0.4f;
view.setScaleType(ImageView.ScaleType.CENTER);
if (TextUtils.isEmpty(vodPic)) onLoadFailed(vodName, view);
else Glide.with(App.get()).load(vodPic).sizeMultiplier(thumbnail).signature(new ObjectKey(vodPic + "_" + Prefers.getThumbnail())).placeholder(R.drawable.ic_img_loading).listener(getListener(vodName, view)).into(view);
else Glide.with(App.get()).asBitmap().load(vodPic).skipMemoryCache(true).sizeMultiplier(thumbnail).signature(new ObjectKey(vodPic + "_" + Prefers.getThumbnail())).placeholder(R.drawable.ic_img_loading).listener(getListener(vodName, view)).into(view);
}
private static RequestListener<Drawable> getListener(String vodName, ImageView view) {
private static RequestListener<Bitmap> getListener(String vodName, ImageView view) {
return new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
ImgUtil.onLoadFailed(vodName, view);
return true;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
view.setScaleType(ImageView.ScaleType.CENTER_CROP);
return false;
}

Loading…
Cancel
Save