安卓記事本開發(fā)報告_第1頁
安卓記事本開發(fā)報告_第2頁
安卓記事本開發(fā)報告_第3頁
安卓記事本開發(fā)報告_第4頁
安卓記事本開發(fā)報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

基于Android平臺記事本的設計與實現(xiàn) 1.設計目的記事本的基本功能就是記事,手機用戶首先用到的就是文本記事,輸入事務信息以文本的形式展現(xiàn)出來,存儲起來。隨著用戶需求的增加,可能希望用圖形來代替文本來記事,用戶之間打開記事本,看到圖片就能聯(lián)系自己所記載的事務信息。這樣免去了輸入文字的麻煩,反而會更簡單。又或者是文本與圖片的交叉運用,可以讓用戶自己選擇自己喜歡的記事方式,更加自由與便捷。所以此功能的意義是讓簡單的記事信息能以文本、圖文和視頻表達,更加豐富多彩。2.設計內(nèi)容本設計的基本內(nèi)容是在Android平臺下,設計與實現(xiàn)記事本軟件。具體要實現(xiàn)的功能是:(1)設計實現(xiàn)添加“文字”,“圖文”,“視頻”這三個主要的功能模塊。(2)進入添加后,有“保存”,“取消”兩種選擇。(3)主頁面顯示記事列表,點擊可查看及時內(nèi)容,并有“刪除”,“返回”兩種選擇。(4)進行測試并分析結果。3.開發(fā)環(huán)境的安裝與配置3.1 Android開發(fā)平臺搭建本設計主要是以Eclipse為基礎,安裝SDK和ADT插件后,用來開發(fā)安卓項目。開發(fā)平臺搭建步驟介紹如下。 (1)下載JDK并安裝,安裝后配置環(huán)境變量。(2)下載Eclipse解壓至指定文件夾。(3)下載SDK后解壓至指定文件夾,打開SDK目錄,點擊SDK Manager安裝開發(fā)安卓項目需要的包。(4)啟動Eclipse,進入HelpInstall New SoftwareAdd,添加ADT插件。(5)進入WindowAndroidBrowse,選擇SDK安裝目錄。3.2硬件環(huán)境Android設備,如Android手機或平板電腦,主頻在1Ghz及以上,內(nèi)存為512MB以上,系統(tǒng)版本為Android2.1及以上。本設計使用Android4.4.4的手機。3.3 軟件環(huán)境操作系統(tǒng):windows10IDE:EclipseAndroid SDK 集成環(huán)境4.設計主體架構4.1 src文件夾src文件夾下com.liwenhuan.notepad包下為系統(tǒng)主要Activity類:NotesDB.java是進行數(shù)據(jù)儲存的,通過SQLite保存數(shù)據(jù)。并且用onCreate函數(shù)創(chuàng)建數(shù)據(jù)庫。通過設置兩個按鈕的監(jiān)聽來實現(xiàn)對輸入文本的存儲或退出。MainActivity.java是主Activity,通過設置三個按鈕的監(jiān)聽來實現(xiàn)添加文本、圖文、視頻的記事方式。AddContent.java通過initView方法來判斷記事的方式,實現(xiàn)對文本、圖片、視頻的添加,獲取保存文件的時間。MyAdapter.java是顯示模塊,通過系統(tǒng)提供的Bitmap在記事列表顯示圖片和視頻的縮略圖。SelectAct.java是記事詳情的顯示模塊,通過監(jiān)聽的方法來實現(xiàn)記事的刪除功能。4.2 gen文件夾gen文件夾是項目自動生成的文件夾R.java是工程下各個資源的標識符負責所有資源的索引。4.3 bin文件夾bin文件夾是編譯后的字節(jié)碼存放的目錄,編譯的過程首先是編譯成為androidjava虛擬機文件classes.dex,再打包成APK格式的包。4.4 res文件夾Res是資源目錄,它包含項目中的資源文件并將其編譯進應用程序中,向此目錄添加資源時,會被R.java自動記錄。res目錄存放所有程序中用到的資源文件?!百Y源文件”指的資料文件、圖片等。子目錄有:drawable、layout、values。本設計主要用了layout目錄下的布局文件。layout是屏幕布局目錄, activity_main.xml是主界面的布局文件、addcontent.xml是增加數(shù)據(jù)頁面的布局文件、cell.xml是幾個功能按鈕的布局文件、select.xml是顯示記事詳情以及對記事進行操作的布局文件。5.程序設計5.1數(shù)據(jù)存儲之SQLite這個方法在數(shù)據(jù)保存中非常常用,只是它只會被一個程序讀取數(shù)據(jù),不能在不同程序間共享數(shù)據(jù)。/創(chuàng)建數(shù)據(jù)庫public void onCreate(SQLiteDatabase db) db.execSQL(CREATE TABLE + TABLE_NAME + ( + ID+ INTEGER PRIMARY KEY AUTOINCREMENT, + CONTENT+ TEXT NOT NULL, + PATH + TEXT NOT NULL, + VIDEO+ TEXT NOT NULL, + TIME + TEXT NOT NULL);5.2 添加文字內(nèi)容當以文本方式記事時,需要對輸入的文字內(nèi)容進行保存。public void initView() if (val.equals(1) / 文字c_img.setVisibility(View.GONE);/隱藏v_video.setVisibility(View.GONE);/隱藏public void onClick(View v) switch (v.getId() case R.id.save:addDB();/添加數(shù)據(jù)finish();/關閉當前Activitybreak;case R.id.delete:finish();break;5.3適配器配置public class MyAdapter extends BaseAdapter private Context context;private Cursor cursor;private LinearLayout layout;/視圖對象public MyAdapter(Context context, Cursor cursor) this.context = context;this.cursor = cursor;Overridepublic int getCount() return cursor.getCount();/返回長度Overridepublic Object getItem(int position) return cursor.getPosition();Overridepublic long getItemId(int position) return position;public View getView(int position, View convertView, ViewGroup parent) LayoutInflater inflater = LayoutInflater.from(context);/加載視圖的權限layout = (LinearLayout) inflater.inflate(R.layout.cell, null);/布局文件TextView contenttv = (TextView) layout.findViewById(R.id.list_content);/獲取上面布局文件中的每一個內(nèi)容TextView timetv = (TextView) layout.findViewById(R.id.list_time);/查找時間ImageView imgiv = (ImageView) layout.findViewById(R.id.list_img);/查找圖片ImageView videoiv = (ImageView) layout.findViewById(R.id.list_video);/查找視頻cursor.moveToPosition(position);/查詢String content = cursor.getString(cursor.getColumnIndex(content);/獲取具體內(nèi)容String time = cursor.getString(cursor.getColumnIndex(time);/獲取時間String url = cursor.getString(cursor.getColumnIndex(path);/獲取圖片的縮略圖String urlvideo = cursor.getString(cursor.getColumnIndex(video);/獲取視頻contenttv.setText(content);/將內(nèi)容傳遞進來timetv.setText(time);/將時間傳遞進來videoiv.setImageBitmap(getVideoThumbnail(urlvideo, 200, 200,MediaStore.Images.Thumbnails.MICRO_KIND);/在列表顯示視頻縮略圖imgiv.setImageBitmap(getImageThumbnail(url, 200, 200);/在列表顯示圖片縮略圖return layout;5.4添加圖片和視頻在本設計中,不僅提供了以文本方式進行記事,還提供了以圖片和視頻方式進行記事。public void initView() if (val.equals(2) /圖片c_img.setVisibility(View.VISIBLE);/顯示v_video.setVisibility(View.GONE);/隱藏Intent iimg = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);/跳轉到系統(tǒng)相機phoneFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + / + getTime() + .jpg);/獲取SD卡絕對路徑iimg.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(phoneFile);/存儲獲取的圖片信息startActivityForResult(iimg, 1);/啟動跳轉if (val.equals(3) c_img.setVisibility(View.GONE);/隱藏v_video.setVisibility(View.VISIBLE);/顯示Intent video = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);/跳轉到手機系統(tǒng)信息videoFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + / + getTime() + .mp4);/獲取SD卡絕對路徑video.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(videoFile);/存儲獲取的video信息startActivityForResult(video, 2);/啟動跳轉/顯示圖片或視頻protected void onActivityResult(int requestCode, int resultCode, Intent data) / TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if (requestCode = 1) /圖片Bitmap bitmap = BitmapFactory.decodeFile(phoneFile.getAbsolutePath();/獲取路徑c_img.setImageBitmap(bitmap);/展示內(nèi)容if (requestCode = 2) /視頻v_video.setVideoURI(Uri.fromFile(videoFile);/加載視頻v_video.start();/播放視頻5.5 獲取圖片和視頻的縮略圖當我們用圖片或制品進行記事時,在列表中需要顯示其縮略圖,可以用系統(tǒng)提供的Bitmap進行處理。/獲取圖片的縮略圖public Bitmap getImageThumbnail(String uri, int width, int height) Bitmap bitmap = null;BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;bitmap = BitmapFactory.decodeFile(uri, options);options.inJustDecodeBounds = false;int beWidth = options.outWidth / width;int beHeight = options.outHeight / height;int be = 1;if (beWidth beHeight) be = beWidth; else be = beHeight;if (be = 0) be = 1;options.inSampleSize = be;bitmap = BitmapFactory.decodeFile(uri, options);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;/獲取視頻的縮略圖private Bitmap getVideoThumbnail(String uri, int width, int height, int kind) Bitmap bitmap = null;bitmap = ThumbnailUtils.createVideoThumbnail(uri, kind);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;5.7詳情頁顯示protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.select);/加載詳情/ System.out.println(getIntent().getIntExtra(NotesDB.ID, 0);s_delete = (Button) findViewById(R.id.s_delete);s_back = (Button) findViewById(R.id.s_back);s_img = (ImageView) findViewById(R.id.s_img);s_video = (VideoView) findViewById(R.id.s_video);s_tv = (TextView) findViewById(R.id.s_tv);notesDB = new NotesDB(this);dbWriter = notesDB.getWritableDatabase();/獲取寫權限s_back.setOnClickListener(this);s_delete.setOnClickListener(this);/如果圖片為空,則隱藏,否則顯示if (getIntent().getStringExtra(NotesDB.PATH).equals(null) s_img.setVisibility(View.GONE); else s_img.setVisibility(View.VISIBLE);if (getIntent().getStringExtra(NotesDB.VIDEO).equals(null) s_video.setVisibility(View.GONE); else s_video.setVisibility(View.VISIBLE);s_tv.setText(getIntent().getStringExtra(NotesDB.CONTENT);/加載TextView的文字信息Bitmap bitmap = BitmapFactory.decodeFile(getIntent().getStringExtra(NotesDB.PATH);/加載圖片信息s_img.setImageBitmap(bitmap);/顯示圖片信息s_video.setVideoURI(Uri.parse(getIntent().getStringExtra(NotesDB.VIDEO);s_video.start();/播放視頻6.測試6.1虛擬設備AVD測試(1)主界面顯示如圖6.1所示。(2)記事頁面顯示如圖6.2所示。圖6.1 圖6.2(3)記事列表顯示如圖6.3所示。(4)記事詳情顯示如圖6.4所示。圖6.3圖6.46.2 真機測試將記事本的apk文件導進手機,安裝后進行測試,測試結果如下:(1)添加好內(nèi)容后,記事本的記事列表顯示如圖6.5所示。(2)以文本方式添加記事,詳情顯示如圖6.6所示。圖6.5圖6.6(3)以圖文方式添加記事,內(nèi)容詳情頁顯示如圖6.7。(4)以視頻結合文字方式添加記事,內(nèi)容詳情頁顯示如圖6.8。圖6.7圖6.87.總結通過此次設計過程我會到了許多知識,在這個過程中遇到了許多困難,比如SDK和ADT的版本不能兼容,記事本項目可以在虛擬設備中運行,在真機上測試時卻出現(xiàn)了問題,不能讀取圖片和視頻,通過在網(wǎng)上查找資料,發(fā)現(xiàn)是雖然在代碼中對SD卡添加了讀取權限,但沒有在AndroidMainfest.xml中添加對手機SD卡的讀取權限,所以出現(xiàn)了如上的錯誤。通過不斷的發(fā)現(xiàn)問題,總結問題和解決問題的過程,使我對Android的認識不斷的提高,得到了寶貴的經(jīng)驗。代碼:MainActivity.javapackage com.liwenhuan.notepad;/采用接口方式public class MainActivity extends Activity implements OnClickListener private Button textbtn, imgbtn, videobtn;/聲明三個buttonprivate ListView lv; /創(chuàng)建listviewprivate Intent i;/通過intent來創(chuàng)建標識private MyAdapter adapter;private NotesDB notesDB;/數(shù)據(jù)庫對象private SQLiteDatabase dbReader;/獲取讀取權限private Cursor cursor;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();/調(diào)用初始化方法/初始化public void initView() lv = (ListView) findViewById(R.id.list);/找id操作textbtn = (Button) findViewById(R.id.text);/找文字imgbtn = (Button) findViewById(R.id.img);/找圖片videobtn = (Button) findViewById(R.id.video);/找視頻textbtn.setOnClickListener(this); /添加監(jiān)聽事件imgbtn.setOnClickListener(this);videobtn.setOnClickListener(this);notesDB = new NotesDB(this);/數(shù)據(jù)庫實例化dbReader = notesDB.getReadableDatabase();/獲取讀取權限/獲取記事詳情lv.setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView parent, View view,int position, long id) cursor.moveToPosition(position);Intent i = new Intent(MainActivity.this, SelectAct.class);i.putExtra(NotesDB.ID,cursor.getInt(cursor.getColumnIndex(NotesDB.ID);/獲取IDi.putExtra(NotesDB.CONTENT, cursor.getString(cursor.getColumnIndex(NotesDB.CONTENT);/獲取內(nèi)容i.putExtra(NotesDB.TIME,cursor.getString(cursor.getColumnIndex(NotesDB.TIME);/獲取時間i.putExtra(NotesDB.PATH,cursor.getString(cursor.getColumnIndex(NotesDB.PATH);/獲取圖片i.putExtra(NotesDB.VIDEO,cursor.getString(cursor.getColumnIndex(NotesDB.VIDEO);/獲取視頻startActivity(i);/跳轉到詳情頁);/添加一個復寫方法Overridepublic void onClick(View v) i = new Intent(this, AddContent.class);/實例化操作switch (v.getId() case R.id.text:i.putExtra(flag, 1);startActivity(i);/跳轉至AddContent.javabreak;case R.id.img:i.putExtra(flag, 2);startActivity(i);break;case R.id.video:i.putExtra(flag, 3);startActivity(i);break;public void selectDB() cursor = dbReader.query(NotesDB.TABLE_NAME, null, null, null, null,null, null);adapter = new MyAdapter(this, cursor);lv.setAdapter(adapter);Overrideprotected void onResume() super.onResume();selectDB();NotesDB.javapackage com.liwenhuan.notepad;public class NotesDB extends SQLiteOpenHelper public static final String TABLE_NAME = notes;/指定名稱public static final String CONTENT = content;/內(nèi)容public static final String PATH = path;/圖片public static final String VIDEO = video;/視頻public static final String ID = _id;/創(chuàng)建idpublic static final String TIME = time;/當前保存文本的時間/復寫一個構造方法public NotesDB(Context context) super(context, notes, null, 1);/super返回值(context,庫名,null,版本號)Override/創(chuàng)建數(shù)據(jù)庫public void onCreate(SQLiteDatabase db) /創(chuàng)建db.execSQL(CREATE TABLE + TABLE_NAME + ( + ID+ INTEGER PRIMARY KEY AUTOINCREMENT, + CONTENT+ TEXT NOT NULL, + PATH + TEXT NOT NULL, + VIDEO+ TEXT NOT NULL, + TIME + TEXT NOT NULL);Override/更新數(shù)據(jù)庫,當前需求,不需要更新public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) AddContent.javapackage com.liwenhuan.notepad;public class AddContent extends Activity implements OnClickListener private String val;/用于接收MainActivity中的跳轉的定義private Button savebtn, deletebtn;private EditText ettext;private ImageView c_img;private VideoView v_video;/用來播放視頻private NotesDB notesDB;/創(chuàng)建數(shù)據(jù)庫對象private SQLiteDatabase dbWriter;private File phoneFile, videoFile;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.addcontent);/綁定視圖val = getIntent().getStringExtra(flag);/接收完成savebtn = (Button) findViewById(R.id.save);/尋找iddeletebtn = (Button) findViewById(R.id.delete);ettext = (EditText) findViewById(R.id.ettext);c_img = (ImageView) findViewById(R.id.c_img);v_video = (VideoView) findViewById(R.id.c_video);savebtn.setOnClickListener(this);/監(jiān)聽事件deletebtn.setOnClickListener(this);notesDB = new NotesDB(this);/實例化dbWriter = notesDB.getWritableDatabase();initView();/判斷是否顯示public void initView() if (val.equals(1) / 文字c_img.setVisibility(View.GONE);/隱藏v_video.setVisibility(View.GONE);/隱藏if (val.equals(2) /圖片c_img.setVisibility(View.VISIBLE);/顯示v_video.setVisibility(View.GONE);/隱藏Intent iimg = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);/跳轉到系統(tǒng)相機phoneFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + / + getTime() + .jpg);/獲取SD卡絕對路徑,照片儲存在SD卡中,數(shù)據(jù)庫中只存儲路徑iimg.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(phoneFile);/存儲獲取的圖片信息startActivityForResult(iimg, 1);/啟動跳轉if (val.equals(3) c_img.setVisibility(View.GONE);/隱藏v_video.setVisibility(View.VISIBLE);/顯示Intent video = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);/跳轉到手機系統(tǒng)信息videoFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + / + getTime() + .mp4);/獲取SD卡絕對路徑video.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(videoFile);/存儲獲取的video信息startActivityForResult(video, 2);/啟動跳轉Overridepublic void onClick(View v) switch (v.getId() case R.id.save:addDB();/添加數(shù)據(jù)finish();/關閉當前Activitybreak;case R.id.delete:finish();break;/添加數(shù)據(jù)public void addDB() ContentValues cv = new ContentValues();/實例化cv.put(NotesDB.CONTENT, ettext.getText().toString();/添加內(nèi)容(在輸入框中獲取到的)cv.put(NotesDB.TIME, getTime();/調(diào)用方法獲取時間并添加cv.put(NotesDB.PATH, phoneFile + );/將獲取的圖片信息插入數(shù)據(jù)庫中cv.put(NotesDB.VIDEO, videoFile + );/將獲取的vedio信息插入數(shù)據(jù)庫中dbWriter.insert(NotesDB.TABLE_NAME, null, cv);/將上面添加的數(shù)據(jù)插入數(shù)據(jù)庫中/獲取保存文件時的時間private String getTime() SimpleDateFormat format = new SimpleDateFormat(yyyy年MM月dd日 HH:mm:ss);Date curDate = new Date();String str = format.format(curDate);/按指定的格式獲取時間return str;Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) / TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if (requestCode = 1) /圖片Bitmap bitmap = BitmapFactory.decodeFile(phoneFile.getAbsolutePath();/獲取路徑c_img.setImageBitmap(bitmap);/展示內(nèi)容if (requestCode = 2) /視頻v_video.setVideoURI(Uri.fromFile(videoFile);/加載視頻v_video.start();/播放視頻MyAdapter.javapackage com.liwenhuan.notepad;public class MyAdapter extends BaseAdapter private Context context;private Cursor cursor;private LinearLayout layout;/視圖對象/構造方法public MyAdapter(Context context, Cursor cursor) this.context = context;this.cursor = cursor;Overridepublic int getCount() return cursor.getCount();/返回長度Overridepublic Object getItem(int position) return cursor.getPosition();Overridepublic long getItemId(int position) / TODO Auto-generated method stubreturn position;public View getView(int position, View convertView, ViewGroup parent) LayoutInflater inflater = LayoutInflater.from(context);/加載試圖的權限layout = (LinearLayout) inflater.inflate(R.layout.cell, null);/布局文件TextView contenttv = (TextView) layout.findViewById(R.id.list_content);/獲取上條布局文件中的每一個內(nèi)容TextView timetv = (TextView) layout.findViewById(R.id.list_time);/顯示時間ImageView imgiv = (ImageView) layout.findViewById(R.id.list_img);/顯示圖片ImageView videoiv = (ImageView) layout.findViewById(R.id.list_video);/顯示視頻cursor.moveToPosition(position);/查詢String content = cursor.getString(cursor.getColumnIndex(content);/承載查詢到的具體內(nèi)容String time = cursor.getString(cursor.getColumnIndex(time);/獲取時間String url = cursor.getString(cursor.getColumnIndex(path);/獲取圖片的縮略圖String urlvideo = cursor.getString(cursor.getColumnIndex(video);/獲取視頻contenttv.setText(content);/將內(nèi)容傳遞進來timetv.setText(time);/將時間傳遞進來videoiv.setImageBitmap(getVideoThumbnail(urlvideo, 200, 200,MediaStore.Images.Thumbnails.MICRO_KIND);/在列表顯示視頻縮略圖imgiv.setImageBitmap(getImageThumbnail(url, 200, 200);/在列表顯示圖片縮略圖return layout;/獲取圖片的縮略圖public Bitmap getImageThumbnail(String uri, int width, int height) Bitmap bitmap = null;BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;bitmap = BitmapFactory.decodeFile(uri, options);options.inJustDecodeBounds = false;int beWidth = options.outWidth / width;int beHeight = options.outHeight / height;int be = 1;if (beWidth beHeight) be = beWidth; else be = beHeight;if (be = 0) be = 1;options.inSampleSize = be;bitmap = BitmapFactory.decodeFile(uri, options);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;/獲取視頻的縮略圖private Bitmap getVideoThumbnail(String uri, int width, int height, i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論