`
文章列表
利用Handler来更新android的UI(1) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() {       public void run() {            myView.invalidate();       }          }).start();   然而发现这样是不行的,因为它违背了单线程模型: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。查阅了文档和apidemo后,发觉常用的方法是利用Handler来实现UI线程的更新的。 下面代码的功 ...
利用Handler来更新android的UI (2) 文字程序很简单,一个View,一个Activity,利用handler和postInvalidate()更新UI。 程序效果是一个蓝色的正方形向右移出屏幕。 package com.ray.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.o ...
Android中话bitmap的简单示例 程序效果:读入bitmap的数据流,解码,再画出来: package com.ray.draw; import java.io.InputStream; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import ...
Android中使用animation的方法 在Android中,分别可以在xml中定义Animation,也可以在程序代码中定义, 下面的小例子是利用RotateAnimation简单展示一下两种方法的用法,对于其他动画,如ScaleAnimation,AlphaAnimation,原理是一样的。 方法一:在xml中定义动画: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android ...
Android中使用SurfaceView的方法 SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度 (不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主的感觉, 不能把使用的流程清晰展示出来,下面是个简单的示例,力求把流程清楚展示,其他的可简则简。 程序效果:用线程画一个蓝色的长方形。 package com.ray.test; /* * SurfaceView的示例程序 * 演示其流程 */ import android.app.Activity; import android.content. ...
package com.sky; import android.app.Activity; import android.os.Bundle; import android.content.SharedPreferences; import android.widget.EditText; public class saveData extends Activity {     /** Called when the activity is first created. */ public static final String SETTING_INFOS = "SETTING_I ...
Android中Timer使用示例 写惯java的人可能会认为Timer的使用应该如下: 程序功能很简单:10秒后,SetTitle为“hear me?”,然后,实际上这样做是不行的,这跟Android的线程安全有关! package com.ray.test; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; public class JavaTimer extends Activity { Timer timer = new ...
Android中Widget的使用示例 之前已经写过通过重绘整个背景的方式,实现物体移动。今天要讲的是, 如何通过移动widget,view等控件,实现部分重绘。结合之前发Droiddraw工具,使用AbsoluteLayout,可以随意放置控件在任何位置。 package com.sky; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import a ...
之前写过一篇文章是关于Android 的Activity跳转的,但当中没涉及到Activity的消息的传递。利用Bundle是一种比较方便的办法。 程序的效果是活动A向B跳转的同时发送一字符串,B读出字符串。 "先在AndroidManifest.xml中定义一个新的Activity,target: " <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/an ...
Android中画面的布局工具 Hierarchy Viewer 帮你分析应用程序UI布局 Hierarchy Viewer在android的工具文件夹里: \android\tools\hierarchyviewer.bat 1.启动 模拟器。 2.到\android\tools\目录下,双击可以启动hierarchyviewerbat文件,打开一个图形界面。 3.点击 load View hierarchy按钮,就可以捕获模拟器当前activity的画面布局信息。 4.hierarchy通过树形结构展示布局形式。 5.双击树节点可以展示单独的UI部分。 6.当模拟器activity画面变 ...
Canvas用法 做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。 不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View, 用它的Canvas。不同的时,Android里没有Graphics,而用Paint代之,当然用法也稍有不同。以下是自定义View的一段代码: @Override public void onDraw(Canvas canvas) { // 首先定义一个paint Paint paint = new Paint(); // 绘制矩形区域-实心矩形 // 设置颜 ...
九宫图的实现方式   private GridView mGridView01;   public void onCreate(Bundle savedInstanceState)   {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     mGridView01 = (GridView)findViewById(R.id.myGridView1);         /* 9个元素,以3列方式呈现(3x3) */         mGridView01.setNumColumns(3); ...
  如何在android应用中执行另一个android应用 InstallReceiver mInstallReceiver = new InstallReceiver();                 IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_INSTALL);                 filter.addAction(Intent.ACTION_PACKAGE_ADDED);                 filter.addDataScheme("package");     ...
图片缩放 package com.eoeandroid.demo.testcode; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.view.ViewGroup.LayoutParams; impor ...
在之前的学习过程中我们已经知道,Android应用中最常用的屏幕显示开发是基于Activity的,但是,在很多情况下我们需要显示一个对话框或浮动窗体来完成一些简单的任务,比如需要让用户输入一些内容,或让用户确认一些信息。 在Android中,我们可以通过两种方式来创建对话框: 1. 借助Dialog类,或它的子类(如AlertDialog) 2. 使用Activity的对话框主题 使用Dialog类: 让我们先来看下如何借助Dialog类创建对话框,首先,我们需要定义一个继承了Dialog类的子类: class MyDialog extends Dialog {     public MyDia ...
Global site tag (gtag.js) - Google Analytics