android学习笔记.doc_第1页
android学习笔记.doc_第2页
android学习笔记.doc_第3页
android学习笔记.doc_第4页
android学习笔记.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

笔记:Xml解析 :pc通常使用Dom,手机平台通常使用SAX,J2ME使用Pull权限: 录音:File file=new File(/sdcard/+new DateFormat().format(yyyyMMdd_hhmmss,Calendar.getInstance(Locale.CHINA)+.amr);Toast.makeText(Record.this,正在录音,录音文件在+file.getAbsolutePath(),Toast.LENGTH_SHORT).show();/创建录音对象mr=new MediaRecorder();/从麦克风源进行录音mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);/设置输出格式mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);/设置编码格式mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);/设置输出文件mr.setOutputFile(file.getAbsolutePath();/创建文件,准备录制try file.createNewFile();mr.prepare();/缓冲,准备录制mr.start();btnrecord.setText(录音中.); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();停止: try mr.stop(); mr.release();mr=null;btnrecord.setText(录音);Toast.makeText(Record.this,录音完毕!,Toast.LENGTH_SHORT).show(); catch(Exception ex) ex.printStackTrace(); 音乐播放器:播放raw 中资源player=MediaPlayer.create(this,R.raw.gequ);player.start();播放sdcard中资源:Service中String filepath=/sdcard/music.mp3;filepath=intent.getExtras().getString(filepath);player=new MediaPlayer();player.reset();Log.i(tag,filepath=+filepath);player.setDataSource(filepath); /设置要播放的音乐player.prepare();/缓冲player.start();/开始或恢复播放Log.i(tag,执行);获取sdcard中音乐信息Cursor c = null; c =this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,new StringMediaStore.Video.Media.TITLE,/歌曲名称MediaStore.Audio.Media.ARTIST,/艺术家MediaStore.Audio.Media.DURATION,/时长MediaStore.Audio.Media.DATA, /文件路径MediaStore.Audio.Media._ID,/文件IDMediaStore.Audio.Media.DISPLAY_NAME, /音乐文件名MediaStore.Audio.Media.ALBUM,/专辑名MediaStore.Audio.Media.SIZE,/大小MediaStore.Audio.Media.YEAR,/年代MediaStore.Audio.Media.MIME_TYPE /格式,null,null,null);视频播放器:VideoView :2.2只有声音没有图像1.5:正常:VideoView videoview=(VideoView)findViewById(R.id.videoview); MediaController mediacontroller=new MediaController(this); /绑定videoview mediacontroller.setAnchorView(videoview); /设置videoview的MediaController videoview.setMediaController(mediacontroller); /设置资源 videoview.setVideoURI(Uri.parse(/sdcard/mymp4.mp4); videoview.start();将File explorer中的文件pull 到PC上:在tool下:adb pull /data/data/com./databases/文件 e:文件音乐播放:音乐资源存储在/res/raw/下:MediaPlayer Player=MediaPlayer.create(this,R.raw.music); Player.start();播放sdcard中音乐:/sdcard/music.mp3MediaPlayer player=new MediaPlayer();Player.reset();Player.setDataSource(“./sdcard/music.mp3”);Player.prepare();/缓冲Player.start();Android移植:Android Webview学习:WebView用来显示网页。它使您可以滚动自己的web浏览器或简单地显示在您网上活动的某些内容。它采用了WebKit渲染引擎来显示网页的方法,包括向前和向后导航的历史,放大和缩小,执行文本搜索和更要启用内置的变焦。二、重要方法addJavascriptInterface(Object obj, String interfaceName):使用此函数来绑定一个对象的Javascript,该方法可以访问JavaScriptloadData(String data, String mimeType, String encoding):此方法经常出现乱码,尽量少用loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl):加载到WebView给定的数据,以此为基础内容的网址提供的网址。capturePicture():捕捉当前WebView的图片clearCache(boolean includeDiskFiles):清除资源的缓存destroy():销毁此WebView 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件 。WebKit是Mac OS X v10.3及以上版本所半活的软件框架。同时,WebKit也是Mac OS X的Safari网页浏览器的基础。传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。在开发过程中应该注意几点:1.AndroidManifest.xml中必须使用许可android.permission.INTERNET,否则会出Web page not available错误。2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。webview.getSettings().setJavaScriptEnabled(true); 3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖webview的WebViewClient对象。codemWebView.setWebViewClient(new WebViewClient() public boolean shouldOverrideUrlLoading(WebView view, String url) view.loadUrl(url); return true; );/code4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。codepublic boolean onKeyDown(int keyCode, KeyEvent event) if (keyCode = KeyEvent.KEYCODE_BACK) & mWebView.canGoBack() mWebView.goBack(); return true; return super.onKeyDown(keyCode, event); java.lang.IllegalArgumentException: column _id does not exist错误的解决方法:关于这一部分,必须注意sqlite的主键命名,由于simpleCursorAdapter的方法只识别_id,所以,当你用到sqlite的simpleCursorAdapter时,必须把数据表的主键命名为_id。否则就会出现java.lang.IllegalArgumentException: column _id does not exist错误。Animation介绍: !- Tween Animation: Android的animation由四种类型组成 在xml文件中: alpha :渐变透明度动画效果 scale:渐变尺寸伸缩动画效果 translate:画面转换位置移动动画效果 rotate:画面转义旋转动画效果 一个tween动画将对仕途对象中的内容进行一系列简单的转换(位置,大小,旋转,透明性). 如果文字下面还有背景图像,背景图像也会随着文件进行转换。 使用xml来定义Tween Animation 动画的xml文件在工程中res/anim目录,这个文件必须包含一个根元素,可以使插值元素或者是把上面的元素都放入元素组里,默认情况下,所有的动画指令都是同时发生的,为了让他们按序列发生,需要设置一个特殊的属性 startOffset。 interpolator定义一个动画的变化率(the rate of change)。这使得基本的动画效果(alpha,scale,translate,rotate)得以加速,减速,重复等。 Interpolator是基类,封装了所有Interpolator的共同方法,他只有一个方法,即getInterpolation(float input),该方法maps a point on the timeline to a multiplier to be applied to the transformations of an animation.Android 提供了几个Interpolator子类,实现了不同的速度的曲线,如下: AccelerateDecelerateInterpolator 在动画开始与介绍的地方速率改变比较慢,在中间的时候加速 AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速 CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线 DecelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始减速 LinearInterpolator 在动画的以均匀的速度改变 对应LinearInterpolator,变化率是个常数,即f(x)=x; Frame动画 顺序播放事先做好的图像,是一种画面转换动画。 Frame Animation可以在xml Resource定义,(还是存放到res/anim文件夹下),也可以使用AnimationDrawable中的API定义,由于Tween Animation与Frame Animation有着很大的不同, 因此xml定义的格式也完全不一样, 其格式是:首先是animation-list根节点,animation-list根节点中包含多个item子节点,每个item节点定义一帧动画:当前帧的drawable资源和当前帧持续的事件 元素说明: drawable:当前帧引用的drawable资源 duration:当前帧显示的时间(毫秒为单位) oneshot:true:表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。 visible:规定drawable的初始可见性,默认为FALSE - Drawable-hdpi,drawable-mdpi,drawable-lipi的区别:Android2.1以后的版本中有Drawable-hdpi,drawable-mdpi,drawable-lipi三个目录,这个三个目录主要是为了支持多分辨率。Dpi是“dot per inch”的缩写,没英寸像素数。四种密度分类:ldpi(low),mdpi(medium),hdpi(high),and xhdpi(extra high)一般情况下的不同普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320.WVGA,HVGA,QVGA的区别 VGA是”Video Graphics Array”,显示标准为 640*480。 WVGA(Wide VGA)分辨率为 480*800 HVGA(Half VGA)即VGA的一半分辨率为 320*480 QVGA(Quarter VGA)即VGA非四分之一分辨率为240*320drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA的联系 hdpi里面主要放高分辨率的图片,如WVGA (480800),FWVGA (480854) 长宽比 5:3 mdpi里面主要放中等分辨率的图片,如HVGA (320480) 长宽比 3:2 ldpi里面主要放低分辨率的图片,如QVGA (240320) 长宽比 4:3 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。滑动:滚动字幕:android:marqueeRepeatLimit=marquee_forever android:ellipsize=marquee android:singleLine=trueandroid:scrollHorizontally=trueellipsize属性:设置当文字过长时,该控件该如何显示,有如下值设置start:省略号显示在开头end:省略号显示在结尾middle:省略号显示在中间marquee:以跑马灯的方式显示(动画横向移动)marqueeRepeatLimit属性:在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。requestWindowFeaure(featrueId):应用程序窗体显示状态操作,参数是Window类中定义的常量。/* * 常量: * DEFAULT_FEATURES:系统默认状态,一般不需要指定 * FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定 * FEATURE_CUSTOM_TITLE:自定义标题,当需要自定义标题是必须指定,如标题是一个按钮 * FEATURE_INDETERMINATE_PROGRESS:不确定的进度 * FEATURE_LEFT_ICON:标题左侧的图标 * FEATURE_NO_TITLE:无标题 * FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用 * FEATURE_PROGRESS:进度指示器功能 * FEATURE_RIGHT_ICON:标题栏右侧的图标 * */Canvas类的介绍: Canvas();/创建一个空的画布 Canvas(Bitmap bitmap):以bitmap对象创建一个画布,则将内容绘制在bitmap上,因此bitmap不得为null. Canvas(GL gl):在绘制3D效果时使用,与OpenGL相关。drawColor:设置Canvas的背景色。setBitmap:设置具体画布。clipRect:设置显示区域,即设置裁剪区。isOpaque:检测是否支持透明rotate:旋转画布。setViewport:设置画布中的显示窗口skew:设置偏移量Path:利用Path可以画出各种复杂的二维图形。Path mPath = new Path(); mPath.moveTo(20, 150);mPath.lineTo(140, 160); mPath.close();.close()封闭起点与终点.Canvas.drawPath(mpath,paint);/指定画笔绘出路径canvas.drawText(三角形,40,40,paint); /在画布上写字空心正方形 drawRect(left,top,right,bottom,paint); * left:左线距离左边界 * top:上线距离上边界 * right:右线距离左边界 * bottom:底线距离上边界 * 边长:right-left=bottom-top * */空心圆 drawCircle(cx,cy,radius,paint); cx:圆心横坐标 cy:圆心纵坐标 radius,半径/* * 渐变色 Shader * LinearGradient(float x0,float y0,float x1,float y1,int color0,int color1,TileMode tile); * Shader.TileMode三种模式: * REPEAT:沿着渐变方向循环重复 * CLAMP:如果在预先定义的范围外画的话,就重复边界的颜色 * MIRROR:与repeat一样循环重复,但mirror会对称重复 * */ Shader shader=new LinearGradient(0,0,100,100,new intColor.RED,Color.GREEN,Color.BLUE,Color.YELLOW,null, Shader.TileMode.MIRROR); paint.setShader(shader); emulator.exe:启动Android模拟器的工具。提供一个假的Android环境来运行应用程序。adb.exe:命令行编辑器,(调试桥):操作:开始并且停止突兀,安装和卸载应用程序,移动文件至模拟器或者从那里移动mksdcard.exe:读取或者希尔文件到一个插入到移动设备的SD存储卡中。Mdsdcard.exe在你的驱动器中创建一个小的驱动并且会保留测试文件。魔女去会把这个小的部分当初一个SD存储卡。dx.exe:dx.exe是Android SDK的编译器,当运行Java文件,dx.exe将创建一个带有.dex后缀Dalvik可执行格式的文件。Android的可执行文件时叫做Dalvik可执行文件,Dalvik虚拟机器以自己脉络来运行每一个应用程序。而且程序的优先权和Android核心程序一致。Android SDK 网络包:J:提供与互联网有关的类,包括流和数据包SDCard: Android创建sdcard步骤一、cmd进入tools目录输入mksdcard -l mycard 100M F:mysdcard.img / mysdcard.img:镜像文件1. mycard命令可以使用三种尺寸:字节、K和M。如果只使用数字,表示字节。后面还可以跟K,如262144K,也表示256M。2. mycard建立的虚拟文件最小为8M,也就是说,模拟器只支持大于8M的虚拟文件。3. -l命令行参数表示虚拟磁盘的卷标,可以没有该参数。4. 虚拟文件的扩展名可以是任意的,如mycard.abc。5. mksdcard命令是按实际大小生成的sdcard虚拟文件。也就是说,生成256M的虚拟文件的尺寸就是256M,如果生成较大的虚拟文件,要看看自己的硬盘空间够不够!Android创建sdcard步骤二、激活sdcard 1.命令行输入:emulator -avd my_android1.5(avd target Name) -sdcard F:mysdcard.img我在命令行输入激活不了,不知为什么!待解决!emulator: ERROR: the user data image is used by another emulator. aborting2.如果在开发环境(Eclipse)中,可以在Run Configuration对话框中设置启动参数或者在Preferences-Android-Launch加入 -sdcard F:mysdcard.img Android创建sdcard步骤三、sdcard中加入内容 F:android-sdk-windows-1.5_r3toolsadb push E:Xunleigive.mp3 /sdcard/give.mp3要使用sdcard内文件,命令窗口不能关闭读写SD卡文件:中文读写是乱码read_only错误:在创建AVD的时候添加SD,首选项:android-launch:-sdcard E:wf_notepadandroid-sdk-windows-1.5_r1toolssdcard.img1.从电脑上发送文件到设备: adb push 2.从设备上下载文件到电脑: adp pull 这一步需要把模拟器运行起来。开始-运行-cmd,命令如下图:(d:/music.mp3是本地路径,sdcard/music.mp3是远程路径)创建Menu的第二种方式: Overridepublic boolean onCreateOptionsMenu(Menu menu) / TODO Auto-generated method stub super.onCreateOptionsMenu(menu); /创建menu的第二种方式 getMenuInflater().inflate(R.layout.menu, menu); return true; 在values/string.xml里定义了默认的字符串常数,需留意若遭遇如”?”,”,”等特殊符号时,必须使用转义字符(),如:?Android常见颜色:进入cmd,然后cd到SDk tool目录下,执行emulator -data foo,就可以启动另个模拟器了发布应用:在控制台上选择“Uploadan Application”项,输入应用的名字,简介,选择相应的APK文件就可以了。APK文件:APK是Android Package的缩写,即Android安装包。APK是类似于Symbian Sis或Sisx的文件格式。通过将APK文件直接传入Android模拟器或Android手机中即可安装。生成签名文件:(1) 创建一个专门用来发布应用的文件夹publish和存放签名文件的文件夹publish.(2) 输入如下命令,按照其提示一次输入相关信息:F:publish”C:Program FilesJavajdk1.6.0_10binkeytool.exe” genkey alias iceskysl_android.keystore keyalg RSA validity 20000 keystore keys/iceskysl_android.keystore输入keystore密码:未回显再次输入新密码:您的名字与姓氏是什么?Unknown:zhangsan你的组织单位名称是什么?Unknown: .您的组织名称是什么?Unknown:eoe.你所在的城市或区域名称:beijing。你所在的洲或省份:beijing。该单位的两字母国际代码:cn。CN=。:Y输入的主密码。(如果和keystore密码相同,按回车):再次输入新密码:其中参数 validity为证书有效天数,使用ADT插件生成签名文件:步骤:1.在需要发布的项目中上单击鼠标右键,选择“Android Tools”“Export Signed Application Package”项,2.在接下来的对话框中选择需要导出的项目,单击OK按钮,打开选择/创建签名文件的界面。3.这里选择Create new keystore,选择一个存储该签名文件的地址,然后输入密码,单击Next按钮,将打开签名文件信息录入界面。输入信息,点击Next,选择签名后的APK文件存储路径。单击Finish完成。(3) 打包、签名、发布应用签名文件生成后,可以用其对APK文件进行签名两种方式,使用命令:1 在Eclipse中用Export the unsigned apk工具导出项目,保存上面创建的发布目录中,假设为eoe.apk.2 使用jarsigner给eoe.apk文件签名,如下所示:F:publish”C:Program FilesJavajdk1.6.0_12binjarsigner.exe” verbose keystore keys/iceskysl_android.keystore signedjar eoe_signed.apk eoe.apk iceskysl_android.keystore输入密钥库的口令短语:正在添加:META_INF?MANIFEST.MF如上命令即可将未签名eoe.apk文件签名为eoe_signed.apk3 最后验证是否签名成功:F:publish”C:Program FilesJavajdk1.6.0_12binjarsigner.exe” verify eoe_signed.apk 如果成功,显示:jar已验证。使用ADT:1. 在Eclipse中,在需要导出的项目上单击鼠标右键,选择“Android Tools”中的”Export the signed Application Package”项,在选择需要导出的项目后,在其“Keystore selection”界面下选择“Useexisting keystore”,选择签名生成的签名文件(publish_keys)。2. 输入签名文件的密码后,单击Next,在其”Key alias selection”中选择Alias并输入密码。3. 选择导出签名后的文件存储路径,finish(4) Activity是有Android系统进行维护。(UI容器)生命周期:产生运行销毁。Intent:一次对将要执行的操作的抽象描述。作用:启动一个新的Activity并且可以携带数据。两种分别:1、通过Intent来启动一个服务(Service)2、通过Intent来广播一个事件。startActivityForResult()启动Intent。并且当新的Activity运行结束的时候,还必须执行原Activity里的回调函数onActivityResult()。使用startActivity()方法启动新的Activity,此方法调用后,新的Activity执行完后,不会执行回调函数,也不会返回任何值(Activity之间的切换)。putExtra()方法将一组名值对添加到Intent的mExtras变量里边,它是一个Bundle类型(类似于HashMap),并且最后的名值对也是存储到Bundle里边的HashMap中。getIntent()方法返回启动这个Activity的Intent,getExtras()返回这个Intent的Bundle类型的变量eExtras。在此变量中存储了Intent携带的数据。finish()结束当前的Activity。resultCode:这个值暗示了在新的Activity当中的操作十分合法正确。如果一切都是正确的,那么返回值就是0,如果返回值不是0,那就说明程序运行出现了问题。Android系统提供了一些标准的值,但是这里可以构造自己的值,以便发现程序到底出了什么问题。startActivityResult(intent1,REQUEST_CODE):此方法有两个参数,第一个参数是即将要启动的Intent。第二个参数是一个整型的请求码。如果请求码大于0的时候,当新的Activity结束的时候,这个请求码被返回到onActivityResult()的参数里边。通过不同的请求码使得在Activity的回调函数onActivityResult()中针对不同的Activity的返回值进行不同的代码操作。intent三种表现作用: 通过Intent可在多个Activity之间进行跳转(基本作用)。 /两个Activity A和B ,实现A跳转到B Intent in=new Intent(A.this,B.class); startActivity(in); 两个重要的部分:intent动作(action)和动作对应的数据(data)。典型的动作:Main(Activity门户),View,Pick,Edit等。动作对应的数据以URI的形式进行表示。Bundle:Bundle是一个类型安全的容器,他的实现其实就是对HashMap做了一层封装,对于HashMap来讲,任何名值对都可以存进去,值可以是任何的Java对象。但是对于Bundle不是这样的,同样存的是名值对,但是这个值只能是基本类型,或者基本类型的数组,如 String,int,byte,boolean,char等。Intent Filters:Intent 相关类,如果说Intent是一个有效的请求,一个Intent Filters则用于描述一个Activity(或者Intent Receiver)能够操作哪些Intent。 Intent Filters一般在AndroidManifest.xml文件中定义。BroadcastReceiver:应用对一个外部的事件做出响应。不能生成UI(用户看不到)。BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。BroadcastReceiver两种注册方式:在AndroidManifest.xml中注册,或在运行时的代码中使用Context.registerReceiver()进行注册。各种应用通过使用Context.sendBroadcast()将自己的intent broadcasts广播给其他应用程序。 Service 介绍: startService(Intent service)启动Service, Context.bindService()绑定Service。startActiviyForResult()和onActivityResult()可以被认为是一组异步的远程调用。这种形式出现在Activity中的调用和Service的共享当中。Content Provider介绍:数据在Android当中是私有的(文件数据,数据库数据,其他类型数据)。一个Content Provider类实现了一组标准的方法接口。程序可以通过实现一个ContentProvider的抽象接口将自己的数据暴露出去。常见接口: query(Uri,String,String,String)通过关键字查询数据。 insert(Uri,ContentValues)将一组数据插入到指定的地方。update(Uri,ContentValues,String,String)更细数据。delete(Uri,String,String)删除数据。Content Provider访问本地的数据库: Browser:使用Browser Content Provider可以用来读取或修改标签,浏览历史或者网络搜索。 CallLog:查看或更新电话历史,包括来电和去电、未接来电和电话细节,如联系人和通话时间。 Contacts:使用Content Provider可以用来读取,修改或保存联系人信息。View(视图容器):(基本的UI类)基本上所有的高级UI组件都是继承View类而实现的。TextView,Button,List,EditText,RadioButton,Checkbox。Viewgroup(视图容器组件):布局Viewgroup里的View。Android.view.Viewgroup实例。Viewgroup可以加入到另一个Viewgroup里边,Viewgroup继承View.Viewgroup,是一个抽象类,也是其他容器的基类。Layout(布局组件): 常用的两个实现类: LinearLayout:(vertical)竖直布局,(horizontal)水平布局 RelativeLayout:相对布局LayoutParams布局参数FrameLayout:若FrameLayout里有多个元素,那么后边的子元素的显示会重叠在前一个元素上。Android:id 定义组件Id Android:layout_width/height=fill_parent(填充满父容器的空间)/wrap_content(适合大小)android:layout_below=id/label 将当前组件放置于id为label组件的下方。LayoutInflater类 :将xml的布局文件变成View的类(实例化xml的布局文件)(出于性能上的考虑,应用的构建阶段完成,而不应该在运行阶段)。LayoutInflater类需要通过getSystemService方法来获得。RelativeLayout.LayoutParams:参数res内内容发生变化,R.java重新编译res/layout文件夹中文件命名:a-z0-9运行应用程序以外停止:AndroidManifest.xml中是否配置Activity值类型:CharSequence.java文件中:android小写DatePicker monthofyear 从0开始TimePicker 默认系统当前时间进度条(ProgressBar):切换图片(ImageSwitcher&Gallery):在使用ImageSwitcher之前,一定要调用setFactoy方法,否则,setImageResource这个方法会出现空指针异常,Imag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论