EditText editText = (EditText) findViewById(R.id.textId);
editText.setText("EditText component");
editText.setSelection(3);
2.
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText("Text to copy");
String data = clipboard.getText();
boolean isData = clipboard.hasText();
需求:
在屏幕上画text,需要字体为蓝色,并且要有半透明效果
思路:
使用Canvas.drawText() 。
先看下面代码:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAlpha(0x40);
paint.setColor(Color.BLUE);
canvas.drawText("Hello", 0, 0, paint);
}
你认为这代码没错吧?
是的逻辑上的确没错。
可是出来的效果却没有体现出半透明。
为什么捏?
折腾了好半天,最后注意到paint.setColor()方法里的说明:
Set the paint's color. Note that the color is an int containing alpha as well as r,g,b.
英文好的朋友们都看懂了吧,是的setColor中传的参数是包含了alpha值的。
因此我们等于是先设置了alpha值为0x40,然后再设回了不透明。
当然就不会体现alpha值啦。
正确写法,把paint.setAlpha(0x40);和 paint.setColor(Color.BLUE);两行位置调换就ok了!
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAlpha(0x40);
canvas.drawText("Hello", 0, 0, paint);
}
呵,很简单的一个问题。居然搞半天。汗。
NDK
[前提]
1. Cygwin 用于安装NDK 编译c代码 生成*.so文件
[步骤]
1. 下载并解压缩 NDK 我使用的是1.6 即:android-ndk-1.6_r1-windows.zip
假定:我的安装目录:E:\anddev\ndk\android-ndk-1.6_r1
后面为简化之 该目录用:MY_NDK_PATH 代替之
2. 安装NDK
通过Cygwin 进入 MY_NDK_PATH 路径 并执行命令:build/host-setup.sh
Administrator@g-laptop ~ $ cd e: Administrator@g-laptop /cygdrive/e $ cd anddev/ndk/android-ndk-1.6_r1 Administrator@g-laptop /cygdrive/e/anddev/ndk/android-ndk-1.6_ $ build/host-setup.sh Checking host development environment. NDK Root : /cygdrive/e/anddev/ndk/android-ndk-1.6_r1 GNU Make : make (version 3.81) Awk : awk Platform : windows Generate : out/host/config.mk Toolchain : Checking for arm-eabi-4.2.1 prebuilt binaries Host setup complete. Please read docs/OVERVIEW.TXT if you don'
3. 编译 HelloJni 命令: make APP=hello-jni
Administrator@g-laptop /cygdrive/e/anddev/ndk/android-ndk-1.6_r1 $ make APP=hello-jni Android NDK: Building for application 'hello-jni' Compile thumb : hello-jni <= apps/hello-jni/project/jni/hello-jni.c SharedLibrary : libhello-jni.so Install : libhello-jni.so => apps/hello-jni/project/libs/armeabi
如此表明编译成功 可以在 MY_NDK_PATH\apps\hello-jni\project\libs\armeabi 发现:libhello-jni.so
4. 导入该sample 至 Eclipse
6. 运行之 avd:Google API
以上即为NDK 搭建步骤!
[个人评价]
个人感觉NDK很鸡肋 主要原因在于:
1. java c c++ 都是OO 即:面向对象的 导致从c->java 难度并不大 干嘛还要搭建NDK
当然仅限与个人感觉 据说NDK-R3 加强 图像图形处理