編輯:Android開發實例
Android在UI優化方面可以從以下五個方面入手:
Adapter優化
背景和圖片優化
繪圖優化
視圖和布局優化
內存分配優化
二、Adapter優化
什
麼是Adapter,可以先看看我的上一篇文章,Android開發——說說Adapter那點事 Adapter與View的連接主要依靠getView這個方法返回我們需要的自定義view。ListView是Android app中一個最最最常用的控件了,所以如何讓ListView流暢運行,獲取良好的用戶體驗是非常重要的。對ListView優化就是對Adapter中的getView方法進行優化。Google IO大會給出的優化建議如下:
java代碼:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d("MyAdapter", "Position:" + position + "---"
+ String.valueOf(System.currentTimeMillis()));
ViewHolder holder;
if (convertView == null) {
final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_item_icon_text, null);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.text = (TextView) convertView.findViewById(R.id.text);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.icon.setImageResource(R.drawable.icon);
holder.text.setText(mData[position]);
return convertView;
}
static class ViewHolder {
ImageView icon;
TextView text;
}
不建議大家用的方法:
java代碼:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d("MyAdapter", "Position:" + position + "---"
+ String.valueOf(System.currentTimeMillis()));
final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.list_item_icon_text, null);
((ImageView) v.findViewById(R.id.icon)).setImageResource(R.drawable.icon);
((TextView) v.findViewById(R.id.text)).setText(mData[position]);
return v; 11:
}
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
在Android上開發一些小應用既可以積累知識又可以增加樂趣,與任務式開發不同
android中圖像在畫布上放大縮小時,圖像的邊框大小沒有改變! 原圖如下: 放大後:原來圖片的邊框沒有改變,位置依舊! 所以如果要放置圖片的位置的話,就需要
Android記事本示例剖析之三中講了Activity的生命周期,並