`
wangleyiang
  • 浏览: 215381 次
社区版块
存档分类
最新评论
文章列表

IT 随笔

1、分享第一 条经验:“学历代表过去、能力代表现在、学习力代表未来。”   其实这是一个来自国外 教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的 ...
Toast虽然有setDuration(int duration)来设置显示时间,但是duration只有两个选择,LENGTH_SHORT = 0和LENGTH_LONG = 1,其它值传入后,在底层似乎被忽略了,被当作0和非0来处理,故不能调整显示时间。   如果通过多次show来达到时间累加的效果,由于显示和不显示有渐变的动画效果,则会出现闪烁效果。如果自定义一个类似Toast的View『个人认为,之所以使用Toast,是因为它既能满足和用户进行简单交互,又具有操作简单方便的优势,如果要自定义,为什么一定要是“Toast”的外观呢?=^_^=』,然后添加到窗口,也是一种可行的方法, ...
Android中集成了一些传感器,加速度,陀螺仪,光线,电磁场,方向,压力,距离,温度等,利用这些传感器可以开发出有趣的应用。虽然不是所有的硬件厂商都支持这些传感器,但是常用传感器还是被支持的。通过SensorManager可以获得传感器的相关信息,获得SensorManager的代码如下: SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);  然后通过sm的一些方法可以获得传感器的信息: List<Sensor> allSensors = sm.getSensorList ...
通过SensorEventListener可以实现对传感器的监听,但是在监听之前,需要注册监听事件: mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST);    具体的监听代码在下面方法中实现: @Override public void onAccuracyChanged(Sensor s ...
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A coll ...
封装 /** * * @param inputStream * @param bufferSize * @return * @throws Exception */ private String inputStream2String(InputStream inputStream, int bufferSize) throws Exception { if (inputStream == null || bufferSize < 1) { return null; } int i = -1; by ...
在Android应用开发中,有时需要由应用程序本省获得异常报告并提交给开发者,这样就需要获得App崩溃的信息。利用Java中的UncaughtExceptionHandler可以很方便的实现这个操作。默认情况下,线程执行中发生了未捕获的异常,会由默认的DefaultUncaughtExceptionHandler来处理。为了介入到这个操作中并添加自定义的逻辑,需要继承UncaughtExceptionHandler,然后添加自己的逻辑代码。   代码示例:   import java.lang.Thread.UncaughtExceptionHandler; import and ...
Android应用程序通常运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和UI相关的事件,如:用户的按键事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。如果在非UI线程直接对UI进行了操作,则会报错:CalledFromWrongThreadException:only the original thread that created a view hierarchy can touch its views。Android提供了消息循环的机制,利用这个机制可以实现线程间的 ...
在App开发的过程中,有时需要对输入信息做信息进行过滤并提示用户。例如在使用EditText时,用户输入信息有误,友好的交互是提示用户。当然提示方式有很多,例如:Toast,Dialog,自定义效果等。其实EditText有一个继承自TextView的一个setError方法,来看看是什么效果吧。 UI效果:    说明: Set:设置错误信息,含有默认图片; Set with icon:设置含有自定义图片的错误信息; Clear:清除错误信息; 点击Set后效果:   点击Set with icon效果:   点击Clear效果:   代码: public ...
Android系统有自己的事件处理逻辑,而应用开发大部分是在系统逻辑中添加Application逻辑。本文简要说明onTouch,onClick,onLongClick事件关系。   先看这三个事件的处理函数: public boolean onTouch(View v, MotionEvent event); public boolean onLongClick(View v); public void onClick(View v); 看到三个函数的返回值,只有onClick是void,而onTouch和onLongClick是boolean,原因是系统对这些事件的处理是 ...
看到一篇说Span的文章,留做备用,来源:http://orgcent.com/android-textview-spannablestring-span/ import android.app.Activity; import android.graphics.BlurMaskFilter; import android.graphics.Color; import android.graphics.EmbossMaskFilter; import android.graphics.Rasterizer; import android.graphics.Typeface; i ...
最近遇到一个问题,在使用ListView时,用SimpleAdapter提供数据,然后自定义ViewBinder来绑定数据,但是自定义的ListView的子选项却出现了显示状态混乱的问题。   通过调试,最终把问题范围缩小到了public boolean setViewValue(View view, Object data, String,textRepresentation)中。最终找到原因是ListView缓存会使用已经创建的ListView非可视的子选项对象去装载新的数据,导致数据状态是该子选项以前的状态,从而发生奇怪的紊乱现象。产生问题的原因找到,解决问题就是时间和技术的问题了 ...
通过WifiManager可以获得Wifi的状态信息,这些信息被封装到了WifiInfo中,从WifiInfo中可以获得具体的状态信息。 获得WifiManager的方法是: WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); 获得WifiInfo的方法是: WifiInfo info = wifiManager.getConnectionInfo(); 可以获得的Wifi状态信息有: SSID; BSSID; MacAddress; HiddenSSID; IpA ...
在绘制文字时,如果绘制内容的实际长度大于View的宽度,那么字符将在一行绘制,超出部分不显示。由于绘制函数onDraw没有对换行做逻辑处理,所以超出屏幕的部分便不可见了。如果还是想使用Canvas.drawText函数,那么需要对字符串做换行判断,然后分别绘制各行的字符串。看到一个简单的可行性方法,在此贴出代码: @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); TextPaint textPaint = new TextPaint(); textPaint.s ...
在TextView中不仅可以设置链接类型,而且可以自定义链接类型和相关操作。原理是自定义ClickableSpan来绘制可点击文本的效果和点击后的处理,然后设置TextView的ClickableSpan为自定义的ClickableSpan即可。 自定义ClickableSpan: private class CustomizedClickableSpan extends ClickableSpan { String text; public CustomizedClickableSpan(String text) { super ...
Global site tag (gtag.js) - Google Analytics