ANDROID – 删除listview标题图像的额外空间

我有一个带有标题图像的列表视图,图像的顶部和底部有额外的空间。 我想从中移除空间,

我的布局是LinierLayout,如果有人知道请帮忙吗? 我的xml文件已关闭

这是列表项xml的代码

                

这是适配器文件

 import android.content.*; import android.graphics.*; import android.os.*; import android.util.Log; import android.view.*; import android.widget.*; import com.parse.*; import com.squareup.picasso.*; import org.w3c.dom.Text; import java.io.*; import java.net.*; import java.util.*; public class IndividualsAdaptor extends ArrayAdapter { private static final int TYPE_SECTION_HEADER = 0; private static final int TYPE_LIST_ITEM = 1; protected Context mContext; ArrayList mListHeader = new ArrayList(); // Code for Custom Filter. protected List mBackupList = new ArrayList(); public IndividualsAdaptor(Context context, List status) { super(context, R.layout.t3, status); mContext = context; // Code for Custom Filter. mBackupList.addAll(status); } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if (mListHeader.contains(position)){ return TYPE_SECTION_HEADER; } else { return TYPE_LIST_ITEM; } } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder; if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.t3, null); holder = new ViewHolder(); holder.tvHeader = (TextView) convertView.findViewById(R.id.tvHeader); holder.usernameHomepage = (TextView) convertView.findViewById(R.id.fname); holder.statusHomepage = (TextView) convertView.findViewById(R.id.lname); holder.pposition = (TextView) convertView.findViewById(R.id.idposition); holder.orgName = (TextView) convertView.findViewById(R.id.organizationname); holder.logo = (ImageView) convertView.findViewById(R.id.imageView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } ParseObject statusObject = (ParseObject) getItem(position); // title String username = statusObject.getString("firstname"); holder.usernameHomepage.setText(username); // content String status = statusObject.getString("lastname"); holder.statusHomepage.setText(status); // Header if(getItemViewType(position) == TYPE_SECTION_HEADER){ holder.tvHeader.setVisibility(View.VISIBLE); holder.tvHeader.setText(String.valueOf(status.charAt(0))); }else{ holder.tvHeader.setVisibility(View.GONE); } // content String positions = statusObject.getString("position"); holder.pposition.setText(positions); // content String org = statusObject.getString("organizationName"); holder.orgName.setText(org); // logo URL url = null; Bitmap bmp = null; try { url = new URL("file location" + statusObject.getString("image")); bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); } catch (MalformedURLException e) { }catch (IOException e) { } holder.logo.setImageBitmap(bmp); Picasso.with(mContext) .load(String.valueOf(url)) .transform(new Rounded( )) .into(((ImageView) convertView .findViewById(R.id.imageView))); return convertView; } public static class ViewHolder { TextView tvHeader; TextView usernameHomepage; TextView statusHomepage; TextView orgName; TextView pposition; ImageView logo; } @Override public Filter getFilter() {return new Filter(){ @Override protected FilterResults performFiltering(CharSequence charSequence) { String queryString = charSequence.toString().toLowerCase(); List filteredList = new ArrayList(); ParseObject tmpItem; String tmpUsername, tmpStatus, tmpPositions, tmpOrg; for(int i=0; i<mBackupList.size(); i++){ tmpItem = (ParseObject) mBackupList.get(i); tmpUsername = tmpItem.getString("firstname").toLowerCase(); tmpStatus = tmpItem.getString("lastname").toLowerCase(); tmpPositions = tmpItem.getString("position").toLowerCase(); tmpOrg = tmpItem.getString("organizationName").toLowerCase(); // The matching condition if(tmpUsername.contains(queryString)||tmpStatus.contains(queryString)|| tmpPositions.contains(queryString)||tmpOrg.contains(queryString)){ filteredList.add(tmpItem); } } FilterResults filterResults = new FilterResults(); filterResults.count = filteredList.size(); filterResults.values = filteredList; return filterResults; } @Override protected void publishResults(CharSequence charSequence, FilterResults filterResults) { clear(); addAll((List) filterResults.values); } };} public void updateBackupList(List newList){ mBackupList.clear(); mBackupList.addAll(newList); } public void updateHeaderList(ArrayList newHeaderList){ for(int i=0; i<newHeaderList.size(); i++){ mListHeader.add(Integer.parseInt((String)newHeaderList.get(i).get("position"))); } Log.d("Test", mListHeader.toString()); } } 

java文件

            

这应该工作:

 ListView listView = getListView(); ImageView mListHeader = new ImageView(getContext()); mListHeader.setImageResource(R.drawable.individuals_img); mListHeader.setScaleType(ImageView.ScaleType.FIT_XY); mListHeader.setLayoutParams(new AbsListView.LayoutParams(1400,974)); mListHeader.requestLayout(); listView.addHeaderView(mListHeader); 

将自定义布局膨胀为listview标题,并在其下方添加imageview

码:

  @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView list = (ListView) findViewById(R.id.list); View header = getLayoutInflater().inflate(R.layout.header, list, false); //custom layout list.addHeaderView(header, null, false); } 

试试这个:在你的header.xml添加标题图片