2013-10-04 6 views
0

У меня есть этот код для выбора:Android: Изменение размера изображения в элементе ListView

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Button Focused--> 
    <item android:state_focused="true" 
      android:state_pressed="false" 
      android:drawable="@drawable/gradient_background" 
      /> 
<!-- Button Focused Pressed--> 
    <item android:state_focused="true" 
      android:state_pressed="true" 
      android:drawable="@drawable/gradient_background" 
      /> 
<!-- Button Pressed--> 
    <item android:state_focused="false" 
      android:state_pressed="true" 
      android:drawable="@android:drawable/ic_search_category_default" 
      /> 
<!-- Button Default Image--> 
    <item android:drawable="@drawable/gradient_background"/> 

</selector> 

И в деятельности, которая использует этот селектор, у меня есть это:

<ListView 
      android:id="@+id/contactsView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/searchButton" 
      android:divider="@color/DarkGoldenrod" 
      android:dividerHeight="0.1dp" 
      android:listSelector="@drawable/list_selector" 
      android:drawSelectorOnTop="true" /> 

Теперь это пример того, что элемент ListView выглядит, когда вы щелкните по ней и удерживайте ее ...

enter image description here

Мой вопрос: есть ли в любом случае я могу сделать это изображение меньше и выровнять его вправо?

спасибо.

ответ

2

Взгляните на пункт 10 этого Tutorial, узнайте, как использовать свой собственный макет для элемента ListView, и вы можете делать любые манипуляции, которые вы хотите.

+0

@ some-web спасибо за то, что он направил мне соответствующий раздел, я начинающий программист-андроид, и это действительно очень помогло мне. – Ogen

+0

столкнулся с такими же проблемами при запуске, просто просмотрите vogella и сторону разработчиков adnroid (от Google) и продолжайте читать, и вы становитесь все лучше и лучше! –

0

Я думаю, что не хороший способ сделать то, что вы хотите :) .. вы должны использовать костюм массива адаптер для этого ..

public class CustomBookItem extends ArrayAdapter<string>{ 
ArrayList<string> names; 
Context context; 
public CustomBookItem(Context context, int textViewResourceId,ArrayList<string> names) 
{ 
    super(context, textViewResourceId, names); 
    // TODO Auto-generated constructor stub 
    this.names=names; 
    this.context=context; 
} 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View v= convertView; 
    LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    v=inflater.inflate(R.layout.custome_listitem, parent,false); 
    ImageView imageView = (ImageView) v.findViewById(R.id.icon); 
    Textview name=(Textview)v.findViewById(R.id.name); 
    imageView.setImageDrawable(r.drawbale.icon_search); 
    return v; 
} 

R.layout.custome_listitem

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" > 
<Textview 
    android:id="@+id/icon" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="2" /> 
<ImageView 
    android:id="@+id/icon" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" /> 

Смежные вопросы