




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Android總結(jié) 孫沛林代碼模板xml布局TextView <TextView android:id="+id/tv_color" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="文本" android:textSize="22sp" />EditText <EditText android:id="+id/ed_url" andr
2、oid:lines="3" android:layout_width="match_parent" android:layout_height="wrap_content" />Button <Button android:id="+id/btn" android:text="卸載" android:textColor="#fff" android:textSize="14sp" android:layout_width="66dp&
3、quot; android:layout_height="30dp" android:background="drawable/btn_selector" android:layout_marginRight="5dp"/> <Button android:id="+id/btn" android:text="按鈕" android:textColor="#000" android:textSize="14sp" android:layout_
4、width="wrap_content" android:layout_height="wrap_content" android:onClick="btnClick" /> public void btnClick(View v) if (v.getId() = R.id.btn) ImageView <ImageView android:id="+id/logo" android:src="drawable/ic_10" android:layout_width="70
5、dp" android:layout_height="70dp" />圖片最小寬高(minWidth, minHeight) <ImageView android:id="+id/img_item" android:minWidth="50dp" android:minHeight="50dp" android:src="drawable/default_image" android:layout_width="wrap_content" android
6、:layout_height="wrap_content"/>ListView <ListView android:id="+id/lv_main" android:layout_width="match_parent" android:layout_height="wrap_content" android:listSelector="drawable/item_selector" />SearchView搜索框 <item android:id="+id/b
7、tn_search" android:title="搜索" android:icon="drawable/title_search_normal" android:showAsAction="ifRoom|collapseActionView" android:actionViewClass="android.widget.SearchView"/>設(shè)置搜索框 MenuItem miSearch = menu.findItem(R.id.btn_search); miSearch.setOnActi
8、onExpandListener(new MenuItem.OnActionExpandListener() Override public boolean onMenuItemActionExpand(MenuItem item) / 展開 return true; Override public boolean onMenuItemActionCollapse(MenuItem item) / 折疊 updateData();/ 更新數(shù)據(jù) return true; ); / 搜索框 sv = (SearchView) miSearch.getActionView(); sv.setSubm
9、itButtonEnabled(true);/ 顯示按鈕 sv.setOnQueryTextListener(this);/ 點(diǎn)擊"提交按鈕"事件Manifest清單文件權(quán)限 <!- 訪問互聯(lián)網(wǎng)-> <uses-permission android:name="android.permission.INTERNET" /> <!- 寫入外置設(shè)備-> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
10、/> <!- 可以建立和刪除文件與文件夾-> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>強(qiáng)制豎屏+隱藏輸入法 <activity android:name=".WeixinActivity" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden|stateAlwaysHidde
11、n" android:label="string/title_activity_weixin" >java代碼Toast Toast.makeText(this,"",Toast.LENGTH_SHORT).show();顯示Toast public static Context context; public static void init(Context cxt) context = cxt; /* * 短時(shí)間顯示Toast */ public static void show(String msg) Toast.makeText(
12、context, msg, Toast.LENGTH_SHORT).show(); Adapterpublic class MyAdapter extends BaseAdapter /* 數(shù)據(jù)集合 */ List<AppInfo> list; /* 反射器 */ LayoutInflater inflater; public MyAdapter() /* * 構(gòu)造器 * param context 上下文 */ public MyAdapter(Context context) inflater = LayoutInflater.from(context); /* * 傳入數(shù)據(jù)集
13、合 * param list */ public void setList(List<AppInfo> list) this.list = list; Override public int getCount() return (list = null)? 0:list.size(); Override public Object getItem(int position) return list.get(position); Override public long getItemId(int position) return position; Override public
14、View getView(int position, View convertView, ViewGroup parent) ViewHolder holder = null; if (convertView = null) convertView = inflater.inflate(R.layout.item, null); holder = new ViewHolder(); holder.logo = (ImageView) convertView.findViewById(R.id.logo); holder.title = (TextView) convertView.findVi
15、ewById(R.id.title); holder.version = (TextView) convertView.findViewById(R.id.version); holder.size = (TextView) convertView.findViewById(R.id.size); holder.btn = (Button) convertView.findViewById(R.id.btn); convertView.setTag(holder); else holder = (ViewHolder) convertView.getTag(); AppInfo app = l
16、ist.get(position); holder.logo.setImageDrawable(app.icon); holder.title.setText(app.AppName); holder.version.setText("版本 : "+app.versionName); holder.size.setText("大小 : "+app.size + "M"); return convertView; public static class ViewHolder ImageView logo; TextView title;
17、 TextView version; TextView size; Button btn; 帶BitmapUtil的適配器/* * 新聞列表的適配器 */public class NewsAdapter extends BaseAdapter LayoutInflater inflater; List<News> list; BitmapUtils bitmapUtils; public NewsAdapter(Context context) this.inflater = LayoutInflater.from(context); bitmapUtils = Utils.get
18、Instance(); Override public int getCount() return (list = null)? 0:list.size(); Override public Object getItem(int position) return list.get(position); Override public long getItemId(int position) return position; Override public View getView(int position, View convertView, ViewGroup parent) ViewHol
19、der holder = null; if (convertView = null) convertView = inflater.inflate(R.layout.layout_news_item, null); holder = new ViewHolder(); holder.image = (ImageView) convertView.findViewById(R.id.iv_img); holder.title = (TextView) convertView.findViewById(R.id.tv_title); holder.pubdate = (TextView) conv
20、ertView.findViewById(R.id.tv_pub_date); convertView.setTag(holder); else holder = (ViewHolder) convertView.getTag(); News item = list.get(position); bitmapUtils.display(holder.image, item.getListimage(); holder.title.setText(item.getTitle(); holder.pubdate.setText(item.getTitle(); return convertView
21、; public static class ViewHolder ImageView image; TextView title; TextView pubdate; Handler多線程+進(jìn)度條 / 1聲明進(jìn)度框?qū)ο?ProgressDialog pd; / 顯示一個(gè)環(huán)形進(jìn)度框 public void showProgressDialog() pd = new ProgressDialog(MainActivity.this); pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); pd.setTitle("刷新列表");
22、pd.setMessage("請耐心等待"); pd.show(); / 2聲明handler對象,處理子線程結(jié)束后,UI主線程的更新 Handler handler = new Handler() Override public void handleMessage(Message msg) if (msg.what = 1) updateData_sort(currSort); pd.dismiss();/ 關(guān)閉進(jìn)度框 ; /3.子線程 private void updateData() / 啟動新線程,處理耗時(shí)操作 new Thread() public void r
23、un() list = Utils.getAppInfos(MainActivity.this); /耗時(shí)操作 try Thread.sleep(2000);/模擬耗時(shí)操作;真機(jī)測試時(shí)請注釋掉 catch (InterruptedException e) e.printStackTrace(); handler.sendEmptyMessage(1); .start(); showProgressDialog();/ 顯示進(jìn)度框去標(biāo)題 / 去標(biāo)題 requestWindowFeature(Window.FEATURE_NO_TITLE);保持屏幕常亮 / 保持屏幕常亮 getWindow().
24、setFlags( WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON );初始化View 1.private void initView() tv_info = (TextView) findViewById(R.id.tv_info);2. private void initView() lv = (ListView) findViewById(R.id.lv_main); list = new ArrayList<String>(); ad
25、apter = new MyAdapter(this); lv.setAdapter(adapter); 比較器 / 定義3個(gè)比較器 Comparator<AppInfo> nameComparator = new Comparator<AppInfo>() Override public int compare(AppInfo lhs, AppInfo rhs) return lhs.appName.toLowerCase().compareTo(rhs.appName.toLowerCase(); ;圖片縮略圖 String path = item.path; Bi
26、tmapFactory.Options opt = new BitmapFactory.Options(); opt.inSampleSize = 4; / 縮放因子, 4-1/4 Bitmap bitmap = BitmapFactory.decodeFile(path,opt); holder.icon.setImageBitmap(bitmap);視頻縮略圖 / 生成縮略圖 Thumbnails.MICRO_KIND(最小的縮略圖) Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(item.path, MediaStore.Vide
27、o.Thumbnails.MICRO_KIND); holder.icon.setImageBitmap(bitmap);/ 設(shè)定ImageView的Bitmap確認(rèn)對話框 new AlertDialog.Builder(this) .setTitle("確認(rèn)信息") .setMessage("確認(rèn)下載圖片嗎?") .setNeutralButton("取消",null) .setPositiveButton("確定",new DialogInterface.OnClickListener() Override p
28、ublic void onClick(DialogInterface dialog, int which) ) .show();設(shè)置Home為返回鍵 /設(shè)置Home為返回鍵,返回之前的Activity getActionBar().setDisplayHomeAsUpEnabled(true); / android.R是系統(tǒng)資源 if (id = android.R.id.home) finish();/ 關(guān)閉界面 return true; BitmapUtils的單例獲取 / 單例模式 private static BitmapUtils bitmapUtils; public static
29、 BitmapUtils getBitmapUtils(Context appContext) if (bitmapUtils = null) bitmapUtils = new BitmapUtils(appContext); return bitmapUtils;BitmapUtils單例模式 private static BitmapUtils bitmapUtils = null; public static BitmapUtils getInstance() if (bitmapUtils = null) bitmapUtils = new BitmapUtils(context);
30、 bitmapUtils.configDefaultLoadingImage(R.drawable.ic_launcher); bitmapUtils.configDefaultLoadFailedImage(R.drawable.ic_launcher); bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565); bitmapUtils.configMemoryCacheEnabled(false); bitmapUtils.configDiskCacheEnabled(true); return bitmapUtils; 配
31、置bitmapUtilspublic void configBitmapUtils() / 加載中的圖片bitmapUtils.configDefaultLoadingImage(R.drawable.default_image);/ 加載失敗的圖片bitmapUtils.configDefaultLoadFailedImage(R.drawable.default_image);/ 設(shè)置圖片的壓縮格式bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565);/ 沒有透明效果的16位色/ 打開內(nèi)存緩存(程序運(yùn)行)bitmapUti
32、ls.configMemoryCacheEnabled(false);/ 不推薦/ 打開磁盤緩存(SDCard)bitmapUtils.configDiskCacheEnabled(true);/ 離線后可訪問 / bitmapUtils.configDefaultAutoRotation(true);/ 設(shè)置圖片自動可旋轉(zhuǎn)/ 設(shè)置最大寬高, 不設(shè)置時(shí)更具控件屬性自適應(yīng).bitmapUtils.configDefaultBitmapMaxSize(BitmapCommonUtils.getScreenSize(this).scaleDown(3);/ 滑動時(shí)加載圖片,快速滑動時(shí)不加載圖片/ i
33、mageListView.setOnScrollListener(new/ PauseOnScrollListener(bitmapUtils, false, true);顯示單張圖片(詳細(xì)頁面)的代碼 iv_img = (ImageView) findViewById(R.id.iv_img); url = getIntent().getStringExtra("url"); bitmapUtils = Utils.getBitmapUtils(this); BitmapDisplayConfig bigPicDisplayConfig = new BitmapDispl
34、ayConfig(); /bigPicDisplayConfig.setShowOriginal(true); / 顯示原始圖片,不壓縮, 盡量不要使用, 圖片太大時(shí)容易OOM。 bigPicDisplayConfig.setBitmapConfig(Bitmap.Config.RGB_565); bigPicDisplayConfig.setBitmapMaxSize(BitmapCommonUtils.getScreenSize(this); BitmapLoadCallBack<ImageView> callback = new DefaultBitmapLoadCallBa
35、ck<ImageView>() Override public void onLoadStarted(ImageView container, String uri, BitmapDisplayConfig config) super.onLoadStarted(container, uri, config); Override public void onLoadCompleted(ImageView container, String uri, Bitmap bitmap, BitmapDisplayConfig config, BitmapLoadFrom from) sup
36、er.onLoadCompleted(container, uri, bitmap, config, from); /顯示圖片的地址和大小 int w = bitmap.getWidth(); int h = bitmap.getHeight(); T.show_long(url+"("+w+"*"+h+")"); ; bitmapUtils.display(iv_img,url, bigPicDisplayConfig, callback);設(shè)置本地圖片為壁紙 /* * 設(shè)置桌面背景 */ private void putWallp
37、aper(Bitmap bitmap) try WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); wallpaperManager.setBitmap(bitmap); catch (IOException e) String msg = "設(shè)置桌面背景發(fā)生異常:" + e.getLocalizedMessage(); Log.e("spl", "設(shè)置桌面背景發(fā)生異常!", e); T.show(msg); / 點(diǎn)擊設(shè)置壁紙按鈕 public
38、 void btn_wall(View v) final String path = imgIdsiIndex; /彈框 new AlertDialog.Builder(this) .setTitle("確認(rèn)信息") .setMessage("將當(dāng)前圖片" + path + "設(shè)為壁紙嗎?") .setNeutralButton("取消", null) .setPositiveButton("確定", new DialogInterface.OnClickListener() Override
39、public void onClick(DialogInterface dialog, int which) Bitmap bitmap = BitmapFactory.decodeFile(path); putWallpaper(bitmap); T.show("設(shè)置壁紙成功"); ) .show(); 分享圖片 / 點(diǎn)擊分享圖片按鈕 public void btn_share(View v) / 實(shí)例化意圖 Intent intent = new Intent(); / 添加動作(干什么?) intent.setAction(android.content.Intent
40、.ACTION_VIEW); / 取得絕對路徑 String path = imgIdsiIndex; / 取得文件 File file = new File(path); / 文件存在 if (file.exists() / 是個(gè)圖片 intent.setDataAndType(Uri.fromFile(file), "image/*");/MIME TYPE / 發(fā)送意圖 this.startActivity(intent); 顯示一個(gè)環(huán)形進(jìn)度框 / 1聲明進(jìn)度框?qū)ο?ProgressDialog pd; / 顯示一個(gè)環(huán)形進(jìn)度框 public void showProg
41、ressDialog() pd = new ProgressDialog(MainActivity.this); pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); pd.setTitle("系統(tǒng)提示"); pd.setMessage("正在獲取數(shù)據(jù),請耐心等待."); pd.show(); HttpUtils獲取網(wǎng)頁內(nèi)容(獲取json) /* * 傳入一個(gè)URL, 返回頁面內(nèi)容 * param url */ private void getHTML(String url) showProgressDia
42、log(); new HttpUtils().send( HttpRequest.HttpMethod.GET, url, new RequestCallBack<String>() Override public void onSuccess(ResponseInfo<String> responseInfo) String html = responseInfo.result; tv_info.setText(html); pd.dismiss(); Override public void onFailure(HttpException e, String s)
43、tv_info.setText(s); pd.dismiss(); ); 聚合數(shù)據(jù)的網(wǎng)址接口(微信精選) / AppKey public static final String AppKey = "c261130730787d277e7416d98d67fff4" Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); / 聚合數(shù)據(jù)的網(wǎng)址
44、接口(微信精選) String url = " getHTML(url); 兩次點(diǎn)擊退出private long mExitTime; Override public void onBackPressed() if (System.currentTimeMillis() - mExitTime) > 2000) Toast.makeText(this, "在按一次退出", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); else finish(); Welcome開機(jī)歡迎
45、界面package com.topnews;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.Animation.AnimationListener;public class Welcome extends Activity private AlphaAnimation start_anima;View view;Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);view = View.inflate(this, R.layout.welcome, null);setContentView(view);initVie
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人投資版證券交易委托合同
- 2025年度室內(nèi)外裝飾裝修合同違約賠償標(biāo)準(zhǔn)與環(huán)保檢測協(xié)議
- 2025年度夜間搬運(yùn)工勞動合同保障方案
- 2025年度個(gè)體工商戶現(xiàn)代農(nóng)業(yè)租賃服務(wù)協(xié)議
- 2025年度倉儲物流行業(yè)勞動合同工傷賠償及倉儲安全協(xié)議
- 2025年度農(nóng)業(yè)生態(tài)環(huán)境評估與合作協(xié)議
- 2025年度XX互聯(lián)網(wǎng)企業(yè)股東退股及網(wǎng)絡(luò)安全協(xié)議
- 咖啡廳裝修簡易合同模板
- 2025年度人體模特?cái)z影作品授權(quán)使用協(xié)議
- 2025年江蘇省安全員《A證》考試題庫
- 年度得到 · 沈祖蕓全球教育報(bào)告(2024-2025)
- 2025年日歷表(A4版含農(nóng)歷可編輯)
- 南京旅游職業(yè)學(xué)院單招職業(yè)技能測試參考試題庫(含答案)
- 新視野大學(xué)英語(第四版)讀寫教程4(思政智慧版)課件 Unit1 Urban development Section A
- 初中英語 滬教牛津版 8B U1-4 More Practice Success for Spring Buds 課件
- 生產(chǎn)現(xiàn)場作業(yè)十不干PPT課件
- 雨污水管網(wǎng)勞務(wù)施工分包合同
- 通信桿路工程施工
- 初中物理光學(xué)經(jīng)典題(共23頁)
- 封條VVTT檢查流程程序參考模板
- 二次回路和電纜編號原則
評論
0/150
提交評論