Android显示相关记录

本文详细探讨了在Android平台上如何有效地显示相关记录,包括使用ListView、RecyclerView的优化策略,以及如何从SQLite数据库检索和加载数据。同时,还讨论了异步加载数据的方法,如使用LoaderManager和AsyncTask,以实现流畅的用户体验。
摘要由CSDN通过智能技术生成
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
  main.cpp

LOCAL_STATIC_LIBRARIES := \
  libstagefright_color_conversion

LOCAL_SHARED_LIBRARIES := \
  libcutils \
  libutils \
  libbinder \
  libui \
  libgui \
  libstagefright\
  libstagefright_foundation

LOCAL_C_INCLUDES := \
  frameworks/native/include/media/openmax \
  frameworks/av/media/libstagefright

LOCAL_MODULE:= yuvShow

LOCAL_MODULE_TAGS := tests

include $(BUILD_EXECUTABLE)
#include <include/SoftwareRenderer.h>
#include <cutils/memory.h>
#include <unistd.h>
#include <utils/Log.h>
#include <binder/IPCThreadState.h>
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>

#include <gui/Surface.h>
#include <gui/SurfaceComposerClient.h>
#include <gui/ISurfaceComposer.h>
#include <ui/DisplayInfo.h>
#include <android/native_window.h>
#include <media/stagefright/MetaData.h>

int main(void)
{
        // create a client to surfaceflinger
        sp<SurfaceComposerClient> client = new SurfaceComposerClient();
        // create a surface
        sp<SurfaceControl> surfaceControl = client->createSurface(String8("showyuv"),
                        //dinfo.w, dinfo.h, PIXEL_FORMAT_RGBA_8888, 0);
                        1280, 720, PIXEL_FORMAT_RGBA_8888, 0);

        /********************* 配置surface ******************************/
        SurfaceComposerClient::openGlobalTransaction();
        surfaceControl->setLayer(100000);      //设定Z坐标
        surfaceControl->setPosition(0, 0);     //以左上角为(0,0)设定显示位置
        surfaceControl->setSize(width, height);//设定视频显示大小
        SurfaceComposerClient::closeGlobalTransaction();
        sp<Surface> surface = surfaceControl->getSurface();
        printf("[%s][%d]\n",__FILE__,__LINE__);

        /********************** 配置MetaData ****************************/
        sp<MetaData> meta = new MetaData;
        meta->setInt32(kKeyWidth, width);
        meta->setInt32(kKeyHeight, height);
        meta->setInt32(kKeyColorFormat, OMX_COLOR_FormatYUV420Planar); //正常显示yuv420p
        printf("[%s][%d]\n",__FILE__,__LINE__);

        /********************** Display the data ***********************/
        SoftwareRenderer* sr = new SoftwareRenderer(surface,meta);//初始化
        sr->render(data,size,NULL); //将data显示到屏幕上,数据来源通过网口
        printf("[%s][%d]\n",__FILE__,__LINE__);
        IPCThreadState::self()->joinThreadPool();//可以保证画面一直显示,否则瞬间消失
        IPCThreadState::self()->stopProcess();
        return 0;
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值