2016-06-23 19 views
0

我收到一些服务器上的图标和文字使用json字符串,但有一些图标显示非常大的尺寸和一些小问题。 我想要所有的图标应该显示小尺寸没有人应该是列表视图中的大图标。为什么listview接收一些大图标和一些小图标?

这里是我的custom_adapter xml。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/LinearLayout_mainID" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="tipster.Tipster_adapter" > 

<ImageView 
    android:id="@+id/icon_tipsterIconID" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 

<LinearLayout 
    android:id="@+id/llot1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="20dp" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/txt_name_tipsterID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/str_text11" /> 

    <TextView 
     android:id="@+id/txt_total_tipsterID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" /> 

    <TextView 
     android:id="@+id/txt_proofinglink_tipsterID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="View Proofing" 
     android:textColor="#219BCC" 
     android:textColorLink="#6D7578" /> 

    <TextView 
     android:id="@+id/txt_sitelink_tipsterID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Get More Detail" 
     android:textColor="#219BCC" /> 

</LinearLayout> 

这里是我的Tipster_adapter.java代码

package tipster; 
//import 

public class Tipster_adapter extends BaseAdapter { 
Context context; 
ArrayList<Tipster_list>tipslist; 
@SuppressLint("Instantiatable") 
public Tipster_adapter(Context context, ArrayList<Tipster_list> tipslist) { 
    super(); 
    this.context = context; 
    this.tipslist = tipslist; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return tipslist.size(); 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

private class ViewHolder { 
    public ImageView icon; 
    public TextView name; 
    public TextView total; 
    public TextView proofingLink; 
    public TextView siteLink; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 

    if(convertView==null){ 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.activity_tipster_adapter,null); 
     holder = new ViewHolder(); 
     holder.icon = (ImageView) convertView.findViewById(R.id.icon_tipsterIconID); 
     holder.name = (TextView) convertView.findViewById(R.id.txt_name_tipsterID); 
     holder.total = (TextView) convertView.findViewById(R.id.txt_total_tipsterID); 
     holder.proofingLink = (TextView) convertView.findViewById(R.id.txt_proofinglink_tipsterID); 
     holder.proofingLink.setFocusable(true); 
     holder.proofingLink.requestFocus(); 
     holder.siteLink = (TextView) convertView.findViewById(R.id.txt_sitelink_tipsterID); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    Tipster_list services=tipslist.get(position); 
    Picasso.with(context).load(services.getImage()).into(holder.icon); 
    Log.d("Url",services.getImage()); 
    holder.name.setText(services.getName()); 
    holder.total.setText(services.getTotal()); 

    final String getproofing=services.getProofinglink(); 
    final String getsite=services.getSitelink(); 
    holder.proofingLink.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(context, Tipster_webview.class); 
      intent.putExtra("gettproofing_URl",getproofing); 
      context.startActivity(intent); 
      //Toast.makeText(context, "proofing...", Toast.LENGTH_SHORT).show(); 

     } 
    }); 
    holder.proofingLink.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      // TODO Auto-generated method stub 

      switch(event.getAction()){    
      case MotionEvent.ACTION_DOWN: 
      ((TextView)v).setTextColor(Color.parseColor("#A2B4BA")); //dark 
       break;   
      case MotionEvent.ACTION_CANCEL:    
      case MotionEvent.ACTION_UP: 
      ((TextView)v).setTextColor(Color.parseColor("#219BCC")); //Light-blue 
       break; 
      } 
      return false; 
     } 
    }); 

    holder.siteLink.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 
         Intent intent = new Intent(context, Tipster_webview.class); 
         intent.putExtra("site",getsite); 
         context.startActivity(intent); 
        } 
       }); 

    holder.siteLink.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      // TODO Auto-generated method stub 

      switch(event.getAction()){    
      case MotionEvent.ACTION_DOWN: 
      ((TextView)v).setTextColor(Color.parseColor("#A2B4BA")); //dark 
       break;   
      case MotionEvent.ACTION_CANCEL:    
      case MotionEvent.ACTION_UP: 
      ((TextView)v).setTextColor(Color.parseColor("#219BCC")); //Light-blue 
       break; 
      } 
      return false; 
     } 
    }); 



    return convertView; 
} 
} 

回答

0

这是因为你在你的ImageView设置你的形象的高度和宽度wrap_content这使得ImageView大或小的你正在给它的图像。

如果你想要它们有一个固定的宽度和高度,你应该给ImageView一个固定的宽度和高度。

<!--I would probably use a dimen resource to define the value 24dp--> 
<ImageView 
    android:id="@+id/icon_tipsterIconID" 
    android:layout_width="24dp" 
    android:layout_height="24dp" 
    android:src="@drawable/ic_launcher" /> 
+0

我从你的答案@ user3331142得到解决方案 – mejkan

1

将布局高度和宽度参数从包装内容更改为固定值。包装内容将选择图像输入的高度和宽度,这将是随机的,多种尺寸的原因。 :)

相关问题