2015-02-18 4 views
1

Я хочу иметь поле поиска на своем рабочем столе в своем приложении для Android. Я могу сделать это без проблем с дизайном по умолчанию. но я хочу иметь прикрепленный имидж для моей панели поиска. Есть ли способ создать собственный дизайн для моего поля поиска?
Я хочу быть похожим на левое изображение, а при нажатии - превращать в правильное изображение с простой анимацией.
Большое спасибо

enter image description hereПользовательский макет Android для поискового виджета

+0

пожалуйста, разместите заказную конструкцию –

+0

@ ZygoteInit oops, извините. Я прикрепил изображение – m0j1

+0

Я сделал «ActionBar's с пользовательскими макетами в прошлом, но никогда не был с пользовательским полем поиска. Я должен подумать об этом. –

ответ

1

Вы можете создать свой собственный EditText путем создания класса, реализующего TextWatcher и создать свой собственный макет, как:

public class MyEditText extends LinearLayout implements TextWatcher { 
private EditText editText; 

public MyEditText(Context context) { 
    super(context); 
    initializeView(context, null); 
} 

... 

@Override 
public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
} 

@Override 
public void onTextChanged(CharSequence s, int start, int before, int count) { 
} 

@Override 
public void afterTextChanged(Editable s) { 

} 

public EditText getEditText() { 
    return editText; 
} 


private void initializeView(Context context, AttributeSet attrs) { 
    LayoutInflater inflater = LayoutInflater.from(context); 
    View view = inflater.inflate(R.layout.view_my_edittext, this, false); 

    editText = (EditText) view.findViewById(android.R.id.edit); 

} 
} 

С макете, как:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/white" 
android:focusable="false"> 

<EditText 
    android:id="@android:id/edit" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginRight="@dimen/drawable_size" 
    android:layout_marginEnd="@dimen/drawable_size" 
    android:background="@null" 
    android:focusable="true" /> 

<TextView 
    android:id="@android:id/hint" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/logo" 
    android:focusable="false" /> 

</FrameLayout> 
Смежные вопросы