Android NDK 使用skia 画图及显示图片的例子

  经过查阅资料以及自己尝试,终于实现了在Android NDK 画图和打开并显示图片。现将自己的测试代码以及使用过程中的心得写下,希望与大家交流一下。

  首先,测试程序的运行结果如下图所示:

调用DrawJpg打开模拟器中的一张Jpg格式的图片并显示

 

调用DrawFlag函数画出来的旗帜

 

下面是具体的代码实现。其中,传递到JNI端的是Canvas。运行的模拟器是Android4.0。Android源码的下载是使用git工具,采用如下命令下载的。

git clone https://android.googlesource.com/platform/external/skia -b android-4.0.1_r1

git clone https://android.googlesource.com/platform/frameworks/base -b android-4.0.1_r1

git clone https://android.googlesource.com/platform/system/core -b android-4.0.1_r1

libskia.so等均是通过DDMS从Android4.0的模拟机上Pull下来的。注意,Android源码和使用的so库的版本必须是一致的。否则,会出现编译出错,只能画线不能画字等错误。

显示的图片是使用DDMS push到Android模拟机上的,放在sdcard目录下。

 

//com_Test1.h

//JNI 端的头文件,两个函数

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class com_Test1 */

#ifndef _Included_com_example_test_MainActivity

#define _Included_com_example_test_MainActivity

#ifdef __cplusplus

extern "C" {

#endif

JNIEXPORT jint JNICALL Java_com_example_test1_NativeMethods_DrawFlag

    (JNIEnv *, jobjectjobject);

JNIEXPORT jint JNICALL Java_com_example_test1_NativeMethods_DrawJpg

    (JNIEnv *, jobjectjobject);

#ifdef __cplusplus

}

#endif

#endif

 

//Test1.cpp

//JNI端的实现

#include <stdio.h>

#include <stdlib.h>

#include "com_Test1.h"

#include <jni.h>

#inclu

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值