热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

React-native调用原生组件

一,继承SimpleViewManager<View>实现如下方法,自定义方法@ReactProp(name”。。。。“)如下所示***图片加载控件*Createdbyyb

一,继承SimpleViewManager 实现如下方法,自定义方法@ReactProp(name=”。。。。“)如下所示


**
* 图片加载控件
* Created by ybj on 2016/2/24.
*/
public class ReactImageManager extends SimpleViewManager {
public static final String REACT_CLASS = "RCTTBImage";
@Override
public String getName() {
return REACT_CLASS;
}
@Override
protected ReactImageView createViewInstance(ThemedReactContext reactContext) {
// ReactImageView imageView= new ReactImageView(reactContext);
ReactImageView imageView = new ReactImageView(reactContext, Fresco.newDraweeControllerBuilder(), null);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);

return imageView;
}
/*
@ReactProp(name = PROP_TEST_ID)
@Override
public void setTestId(ImageView view, int testId) {
super.setTestId(view, testId);
}
*/

//图片url设置
@ReactProp(name = "urlPath")
public void setUrlPath(ReactImageView view,@Nullable String url) {
Log.d("TAG_YBJ", "setUrl" + url);
if (url.toLowerCase().endsWith(".gif")) {
/* DraweeController cOntroller= Fresco.newDraweeControllerBuilder().setUri(url)
.setAutoPlayAnimations(true).build();
this.setController(controller);*/

} else {
/*this.setImageURI(Uri.parse(url));*/
}
view.setSource(url);
// Image13lLoader.getInstance().loadImage(url,view);
}
//边角度数设置
@ReactProp(name = "borderRadius", defaultFloat = 0f)
public void setBorderRadius(ReactImageView view, float borderRadius) {
view.setBorderRadius(borderRadius);
}
//缩放类型
@ReactProp(name = ViewProps.RESIZE_MODE)
public void setResizeMode(ReactImageView view, @Nullable String resizeMode) {
view.setScaleType(ImageResizeMode.toScaleType(resizeMode));
}

}
二,实现 ReactPackage
/**
* 图片加载 需要加载图片需要注册this
* Created by ybj on 2016/2/24.
*/
public class ReactImagePackage implements ReactPackage {
@Override
public List createNativeModules(ReactApplicationContext reactContext) {
return Collections.emptyList();
}

@Override
public Listextends JavascriptModule>> createJSModules() {
return Collections.emptyList();
}

@Override
public List createViewManagers(ReactApplicationContext reactContext) {
return Arrays.asList(
new ReactImageManager());

}
}
三,添加package
        .setApplication(((Activity) mContext).getApplication())        .setJSBundleFile(bundleFile)                //  .setJSMainModuleName("test")        .setNativeModuleCallExceptionHandler(new NativeModuleCallExceptionHandler() {            @Override            public void handleException(Exception e) {            }        })      /* .setBundleAssetName("webviewindex.bundle")        .setJSMainModuleName("webviewindex")*/        .addPackage(new TBRnPackage())        .addPackage(new ReactImagePackage())        .setUseDeveloperSupport(false)        .setInitialLifecycleState(LifecycleState.RESUMED)        .build();mReactRootView.startReactApplication(mReactInstanceManager, "BZMHomeOperationActivity", null);myreact.addView(mReactRootView);

推荐阅读
  • 本文介绍如何在Android应用中通过调用系统图库来选择并获取图片,以供进一步处理或展示。 ... [详细]
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
  • 本文详细介绍了如何在现有的Android Studio项目中集成JNI(Java Native Interface),包括下载必要的NDK和构建工具,配置CMakeLists.txt文件,以及编写和调用JNI函数的具体步骤。 ... [详细]
  • 本文详细介绍了如何在Android应用中使用GridView组件以网格形式展示数据(如文本和图像)。通过行列布局,实现类似矩阵的数据展示效果。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • Android商城应用开发指南(第二部分):创建启动欢迎页
    大多数商城应用程序在启动时会显示一个欢迎页面,以提升用户体验。本文将指导您如何实现一个基本的欢迎页,该页面会在用户打开应用后短暂展示,随后自动跳转至主界面。 ... [详细]
  • 作为一名拥有五年工作经验的开发人员,对产品设计和管理有着独到的见解。本文将分享腾讯暑期实习生面试的经历,涵盖笔试、群面、专业面试、总监面试及最终HR面试的全过程,希望能为即将面试的同学提供有价值的参考。 ... [详细]
  • 本文探讨了使用React Native框架开发的应用,在通过AppCenter构建iOS版本时遇到的‘CopyPlistFile’命令失败的问题,并提供了详细的解决方案。 ... [详细]
  • 前言ReactNative是目前最流行的跨平台框架,并且是Facebook团队开源的项目。架构及实现技术上都有很高的研究价值,本系列就来分析一下Reac ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 本文介绍了如何在Linode服务器上以root用户身份安装Xubuntu,并解决尝试启动图形界面时遇到的'无屏幕找到'错误。 ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • 本文详细介绍了Manacher算法,该算法能够在O(n)时间内找到字符串中的最长回文子串。通过对字符串进行预处理,并使用动态规划的思想,Manacher算法能够高效地解决这一问题。 ... [详细]
  • VMware Horizon View 5.0桌面虚拟化部署实践与心得
    在近期的研究中,我花费了大约两天时间成功部署了桌面虚拟化环境,并在此过程中积累了一些宝贵的经验。本文将分享这些经验和部署细节,希望能对同样关注桌面虚拟化的同行有所帮助。 ... [详细]
  • 使用ASP.NET与jQuery实现TextBox内容复制到剪贴板
    本文将介绍如何利用ASP.NET结合jQuery插件,实现将多行文本框(TextBox)中的内容复制到用户的本地剪贴板上。该方法主要适用于Internet Explorer浏览器。 ... [详细]
author-avatar
霸气小米鱼鱼_156
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有