zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    【故障处理】ORA-12162: TNS:net service name is incorrectly specified (转)
    android studio 编程中用到的快捷键
    java时间格式串
    android Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
    linux安装vmware
    x1c 2017 安装mint18的坑——grub2
    x1c2017 8G版 win linux的取舍纠结记录
    python的try finally (还真不简单)
    kafka+docker+python
    json文件不能有注释
  • 原文地址:https://www.cnblogs.com/shanzei/p/2421201.html
Copyright © 2011-2022 走看看