• android开发问题集锦


    1,Android 中动态改变 ImageView 大小
    在 layout.xml 文件中定义了 ImageView 的绝对大小后,无法动态修改以后
    的大小显示,其实 Android 平台在设计 UI 控件时考虑到这个问题,为了适应不同的 Drawable 可以通过在
    xml 的相关 ImageView 中加入 android:scaleType="fitXY" 这行即可,但因为使用了缩放可能会造成当前
    UI 有所变形。使用的前提是限制 ImageView 所在的层,可以使用一个内嵌的方法限制显示。
     
    2,Bitmap 如何保存成为一个 bmp 文件
    很多网友可能发现了 Android 的 Bitmap 对象无法保存成为一个 bmp 文件,即提供的方法只有
    compress(Bitmap.CompressFormat format, int quality, OutputStream stream) ,可以存为 png 和 jpg,
    png 可能还好说,但是 jpg 是有损压缩会降低图片的质量,其实 Google 还提供了一个 API 在 Bitmap 类,
    通过 copyPixelsToBuffer(Buffer dst) 这个方法来解决,Buffer 类型,和前几天我们说到的 NIO 中的
    ByteBuffer 处理方式一样,需要说明的是 java 中的 Buffer 在内存中是连续成块的,同时底层有 C++支持
    效率还是很高的。
    通过 copyPixelsToBuffer(Buffer dst) 方法将会返回一个 RGB8888 格式的 DIB 文件,DIB 位图和设备
    无关,这里 Tony 提醒大家,如果想显示出位图,还需要将其加上位图的文件头才行。
     
    3,使用 xml 让你的 Activity 无标题方法
    在 androidmanifest.xml 中找到需要设置的 Activity,加一个属性内容为
    android:theme="@android:style/Theme.NoTitleBar" 即可
     
    4,Android 的 Btimap 处理大图片解决方法
    我们都知道 Android 的 Dalvik VM 为一个应用提供了大约 16MB 的内存,一般我们处理超过 8MB 的图片
    将会出现 OutOfMemoryError 异常,我们解码一个图片为了防止内存不足的异常我们可以使用
    BitmapFactory.Options 的 udeinTempStorage 属性解决,代码如下:
    1.BitmapFactory.Options cwj = new BitmapFactory.Options();
    2.cwj.inTempStorage = new byte[1024*1024*5]; //5MB 的临时存储空间
    3.Bitmap bm = BitmapFactory.decodeFile(inputStream,cwj); //这里 cwj 为 Options 属性
     
    5,如何强制禁用 Android 的 Sensor 方向感应器
    从 Android 1.5 开始系统可以设置 Sensor 旋转屏幕,如果你的应用在部分方面没有
    处理好横屏和竖屏的切换,可能需要强制禁用方向感应器 Sensor,相关的方法可以在
    androidmanifest.xml 的相关 activity 中加入 android:screenOrientation="nosensor" 属性。
     
    6,Android 平台显示单位 px 和 dip 以及 sp 有什么区别?
    在 Android 的 layout 文件中 layout_width 或 layout_height 有
    时候可能会指定具体的单位,比如有时候为 px、dip 或者 sp 等等。下面 tony 把常见的
    单位做下简单的介绍,比如说
    px (pixels)像素 -- 一般我们 HVGA 代表 320x480 像素,这个用的比较多。
    dip 或 dp (device independent pixels)设备独立像素 -- 这个和设备硬件有关,
    一般我们为了支持 WVGA、HVGA 和 QVGA cwj 推荐使用这个,不依赖像素。
    sp (scaled pixels — best for text size)放大像素-- 主要处理字体的大小。
    下面的几个是不常用的:
    in (inches)英寸
    mm (millimeters)毫米
    pt (points)点
     
    7,如何判断 Android 手机当前是否联网?
    如果拟开发一个网络应用的程序,首先考虑是否接入网络,在 Android 手机中判断是否联网可以通过 ConnectivityManager 类的 isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager
    cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVI
    CE); ,使用 cwjManager.getActiveNetworkInfo().isAvailable(); 来返回是否有效,如果为 True 则表示当前 Android 手机已经联网,可能是 WiFi 或 GPRS、HSDPA 等等,具体的可以通过 ConnectivityManager 类的 getActiveNetworkInfo() 方法判断详细的接入方式,需要注意的是有关调用需要加入 这个权限,提醒大家在真机上 Market和 Browser 程序都使用了这个方法,来判断是否继续,同时在一些网络超时的时候也可以检查下网络连接是否存在,以免浪费手机上的电力资源。
     
    8,Drawable、Bitmap、Canvas 和 Paint 是什么关系?
    刚刚开始学习 Android 平台,对于 Drawable、Bitmap、Canvas 和 Paint它们之间的概念不是很清楚,其实它们除了 Drawable 外早在 Sun 的 J2ME 中就已经出现了,但是在 Android 平台中,Bitmap、Canvas 相关的都有所变化。
    首先让我们理解下 Android 平台中的显示类是 View,但是还提供了底层图形类android.graphics,今天所说的这些均为 graphics 底层图形接口。
    Bitmap - 称作位图,一般位图的文件格式后缀为 bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。
    Drawable - 作为 Android 平下通用的图形对象,它可以装载常用格式的图像,比
    如 GIF、PNG、JPG,当然也支持 BMP,当然还提供一些高级的可视化对象,比如渐变、
    图形等。
    Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理 Bitmap、GL 或者 Path 路径,同时它可以配合 Matrix 矩阵类给图像做旋转、缩放等操作,同时Canvas 类还提供了裁剪、选取等操作。
    Paint - 我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。如果涉及一些 Android 游戏开发、显示特效可以通过这些底层图形类来高效实现自己的应用。
     
    9,如何在 editView 中字里行间加入动画?
    解决方法如下,请见代码:
    setContentView(R.layout.main);
    TextView textView =(TextView) findViewById(R.id.textview);
    SpannableString ss =new SpannableString("abc");
    Drawable d = getResources().getDrawable(R.drawable.icon32);
    d.setBounds(0,0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
    ImageSpan span =newImageSpan(d,ImageSpan.ALIGN_BASELINE);
    ss.setSpan(span,0,3,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    textView.setText(ss);
     
    10,webView 如何设置字体?
    解决方法如下,请见代码:
    WebSettings webSettings = webView.getSettings();
    webSettings.setTextSize(WebSettings.TextSize.LARGEST);
     
    11,Android 的 ImageButton 问题
    很多网友对 Android 提供的 ImageButton 有个疑问,当显示 Drawable 图片时就
    不会再显示文字了,其实解决的方法有两种,第一种就是图片中就写入文字,但是这样
    解决会增加程序体积,
    同时硬编码方式会影响多国语言的发布。
    第二种解决方法很简单,
    通过分析可以看到 ImageButton 的 layout,
    我们可以直接直接继承,
    添加一个 TextView,
    对齐方式为右侧即可实现 ImageButton 支持文字右侧显示。
     
    11,textView 如何获取选中的部分?
    方法请见如下 Java 代码:
    int selectionStart = textView.getSelectionStart();
    int selectionEnd = textView.getSelectionEnd();
    String selectedText = et.getText().substring(selectionStart,
    selectionEnd);
     
    一些硬件:
    1. android.hardware.camera.autofocus
    2. android.hardware.camera.flash
    3. android.hardware.sensor.light //光线感应器
    4. android.software.live_wallpaper //动态壁纸
    5. android.ha
  • 相关阅读:
    Apache、nginx 、lighttpd性能比较
    datapump
    ORA-0600
    在归档模式中,tablespace处于offline状态下,同样可以进行RMAN备份
    一个0级别增量备份小demo
    logminer
    statspack
    flashback table
    constraint
    linux进入单用户模式
  • 原文地址:https://www.cnblogs.com/shanzei/p/2421201.html
Copyright © 2020-2023  润新知