بالاخره خودم جواب رو پیدا کردم
اینجا میزارم که شاید سوال یه نفر دیگه هم باشه
1-
اول باید یه لایه طراحی کنیم که در این پروژه به اسم layoutspinner که داخل لایه یه Textview و یه ImageView در یک لایه افقی و اون لایه در یک لایه عمودی قرار دارد
2-
این کد کامل فایل MainActivity هست
package com.PRG.customspinner;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
public class MainActivity extends Activity {
Spinner spinner;
ImageView imageView1;
List <String> list;
CustomAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner) findViewById(R.id.spinner);
imageView1 = (ImageView) findViewById(R.id.imageView1);
list = new ArrayList<String>();
list.add("Android");
list.add("IOS");
list.add("Linux");
list.add("Windows Phone");
adapter = new CustomAdapter(this, R.layout.layoutspinner, R.id.textView1, list);
spinner.setAdapter(adapter);
}
}
3-
بعد باید کلاس ArrayAdapter رو شخصی سازی کنیم
اینهم کل کلاس هست که به نام CustomAdapter نوشته میشه
package com.PRG.customspinner;
import java.util.List;
import com.PRG.customspinner.R.id;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomAdapter extends ArrayAdapter<String> {
Context context;
List <String> list;
public CustomAdapter(Context context, int resource, int textViewResourceId, List<String> objects) {
super(context, resource, textViewResourceId, objects);
// TODO Auto-generated constructor stub
this.context = context;
this.list = objects;
}
@SuppressLint("ViewHolder")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return view(position, convertView, parent);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return view(position, convertView, parent);
}
private View view(int position, View convertView, ViewGroup parent){
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLA TER_SERVICE);
View view = inflater.inflate(R.layout.layoutspinner, parent, false);
TextView textView1 = (TextView) view.findViewById(R.id.textView1);
ImageView imageView1 = (ImageView) view.findViewById(R.id.imageView1);
textView1.setText(this.list.get(position));
Drawable drawable= null;
if(position == 0){
drawable = this.context.getResources().getDrawable(R.drawable .ic_android);
}else if (position == 1) {
drawable = this.context.getResources().getDrawable(R.drawable .ic_ios);
}else if (position == 2) {
drawable = this.context.getResources().getDrawable(R.drawable .ic_linux);
}else if (position == 3) {
drawable = this.context.getResources().getDrawable(R.drawable .ic_windowsphone);
}
imageView1.setImageDrawable(drawable);
return view;
}
}