Zuerst verwende ich setTextSize()
, und dann ich setText()
für meine TextView
. Die Standardschriftgröße der setText()
muss die Schriftgröße abdecken, die ich in setTextSize()
aufgerufen habe. Aber die Methode von getView()
gibt eine Ansicht zurück, um meine GridView
Artikel anzuzeigen, so dass ich denke, es ist unmöglich, dass die Schriftgröße manchmal groß ist und manchmal klein ist. Was verursacht das?Mit BaseAdapter für meine GridView, ist die Schriftgröße manchmal groß und manchmal ist klein
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(mContext)
.inflate(R.layout.gridview_monitoring_item,null);
viewHolder.mImageMark = (ImageView) convertView
.findViewById(R.id.gridview_site_mark);
viewHolder.mSiteIdText = (TextView) convertView
.findViewById(R.id.gridview_site_id);
viewHolder.mStatusText = (TextView) convertView
.findViewById(R.id.gridview_status);
viewHolder.siteNameTextView = (TextView) convertView
.findViewById(R.id.gridview_site_name);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Map<Integer,String> map = mMonitoringData.get(position);
if (map.get(R.id.gridview_site_mark).equals("server")) {
viewHolder.mImageMark.setImageDrawable(mContext.getResources().getDrawable(
R.drawable.ic_server));
} else if (map.get(R.id.gridview_site_mark).equals("website")) {
viewHolder.mImageMark.setImageDrawable(mContext.getResources().getDrawable(
R.drawable.ic_website));
}
viewHolder.mStatusText.setText(map.get(R.id.gridview_status));
viewHolder.mSiteIdText.setText(map.get(R.id.gridview_site_id));
viewHolder.siteNameTextView.setText(map.get(R.id.gridview_site_name));
if (mContext.getString(R.string.unknown).equals(map.get(R.id.gridview_status))) { //如果是unknown
convertView.setBackgroundResource(R.color.siteUnknowBackground);
} else if (map.get(R.id.gridview_status).contains("OK") || map.get(R.id.gridview_status).contains("open")) {
convertView.setBackgroundResource(R.color.siteRunningBackground);
viewHolder.siteNameTextView.setTextColor(mContext.getResources().getColor(
R.color.siteRunningNameTextColor));
viewHolder.mStatusText.setTextColor(mContext.getResources().getColor(
R.color.siteRunningStatusTextColor));
}
if (map.get(IS_NOMAL).equals("false") =) { //有log且站点不正常时,显示出红色
convertView.setBackgroundResource(R.color.siteDownBackground);
viewHolder.siteNameTextView.setTextColor(mContext.getResources()
.getColor(R.color.siteDownNameTextColor));
viewHolder.mStatusText.setTextColor(mContext.getResources().getColor(
R.color.siteDownStatusTextColor));
}
/**
* 设置字体大小
*/
viewHolder.mStatusText.setTextSize(mContext.getResources().getDimension(
R.dimen.status_text_small));
viewHolder.mSiteIdText.setTextSize(mContext.getResources().getDimension(
R.dimen.status_text_small));
if (PublicFunction.isTablet(mContext)) {
int x = PublicFunction.getXdpi(mContext);
viewHolder.mStatusText.setPadding(0, (x/2), 0, 0);
viewHolder.mStatusText.setTextSize(14);
viewHolder.mSiteIdText.setTextSize(14);
if (viewHolder.siteNameTextView.length() > 10
&& viewHolder.siteNameTextView.length() < 14) {
viewHolder.siteNameTextView.setTextSize(26);
} else if (viewHolder.siteNameTextView.length() > 13) {
viewHolder.siteNameTextView.setTextSize(22);
} else {
viewHolder.siteNameTextView.setTextSize(32);
}
} else {
if (viewHolder.siteNameTextView.length() > 10
&& viewHolder.siteNameTextView.length() < 14) {
viewHolder.siteNameTextView.setTextSize(20);
} else if (viewHolder.siteNameTextView.length() > 13) {
viewHolder.siteNameTextView.setTextSize(16);
} else {
viewHolder.siteNameTextView.setTextSize(26);
}
}
/**
* 设置字体颜色
*/
viewHolder.siteNameTextView.setTextColor(mContext.getResources().getColor(
R.color.siteRunningNameTextColor));
viewHolder.mStatusText.setTextColor(mContext.getResources().getColor(
R.color.siteRunningStatusTextColor));
return convertView;
}`
Zeigen Sie uns Ihren Code. – Geros
OK.Ich habe gerade meinen Code eingefügt. – sunpeijie