Giter VIP home page Giter VIP logo

bgabadgeview-android's Introduction

💗BGABadgeView-Android💗

Android Arsenal License Download

demo中演示了:

  • 微博底部tab显示最新微博条数
  • 微博列表用户头像显示显示右下角vip徽章
  • 微信消息界面用户新消息
  • 微信消息界面订阅号新消息
  • 使用v4包中的RoundedBitmapDrawable制作圆角头像
  • 拖拽删除徽章

爆炸效果参考的 ExplosionField 改成了只有一个View的情况,只刷新徽章附近的区域

效果图

badgeview

点击下载 Apk 或扫描下方二维码安装体验

Demo

添加 Gradle 依赖

  • maven { url 'https://jitpack.io' } 加入到 repositories 中
  • 添加如下依赖,末尾的「latestVersion」指的是徽章Download里的版本名称,请自行替换。
dependencies {
    implementation 'com.github.bingoogolapple.BGABadgeView-Android:api:latestVersion'
    annotationProcessor 'com.github.bingoogolapple.BGABadgeView-Android:compiler:latestVersion'
}

初始化徽章控件

  1. 在项目任意一个类上面添加 BGABadge 注解,例如新建一个类 BGABadgeInit 专门用于初始化徽章控件
  2. 需要哪些类具有徽章功能,就把那些类的 Class 作为 BGABadge 注解的参数「下面的代码块给出了例子,不需要的可以删掉对应的行」
@BGABadge({
        View.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeView,不想用这个类的话就删了这一行
        ImageView.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeImageView,不想用这个类的话就删了这一行
        TextView.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeFloatingTextView,不想用这个类的话就删了这一行
        RadioButton.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeRadioButton,不想用这个类的话就删了这一行
        LinearLayout.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeLinearLayout,不想用这个类的话就删了这一行
        FrameLayout.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeFrameLayout,不想用这个类的话就删了这一行
        RelativeLayout.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeRelativeLayout,不想用这个类的话就删了这一行
        FloatingActionButton.class, // 对应 cn.bingoogolapple.badgeview.BGABadgeFloatingActionButton,不想用这个类的话就删了这一行
        ...
        ...
        ...
})
public class BGABadgeInit {
}
  1. 再 AS 中执行 Build => Rebuild Project
  2. 经过前面三个步骤后就可以通过「cn.bingoogolapple.badgeview.BGABadge原始类名」来使用徽章控件了

接口说明

/**
 * 显示圆点徽章
 */
void showCirclePointBadge();

/**
 * 显示文字徽章
 *
 * @param badgeText
 */
void showTextBadge(String badgeText);

/**
 * 隐藏徽章
 */
void hiddenBadge();

/**
 * 显示图像徽章
 *
 * @param bitmap
 */
void showDrawableBadge(Bitmap bitmap);

/**
 * 设置拖动删除徽章的代理
 *
 * @param delegate
 */
void setDragDismissDelegage(BGADragDismissDelegate delegate);

/**
 * 是否显示徽章
 *
 * @return
 */
boolean isShowBadge();

/**
 * 是否可拖动
 *
 * @return
 */
boolean isDraggable();

/**
 * 是否正在拖动
 *
 * @return
 */
boolean isDragging();

自定义属性说明

属性名 说明 默认值
badge_bgColor 徽章背景色 Color.RED
badge_textColor 徽章文本的颜色 Color.WHITE
badge_textSize 徽章文本字体大小 10sp
badge_verticalMargin 徽章背景与宿主控件上下边缘间距离 4dp
badge_horizontalMargin 徽章背景与宿主控件左右边缘间距离 4dp
badge_padding 徽章文本边缘与徽章背景边缘间的距离 4dp
badge_gravity 徽章在宿主控件中的位置 BGABadgeImageView和BGABadgeRadioButton是右上方,其他控件是右边垂直居中
badge_draggable 是否开启拖拽删除徽章 false
badge_isResumeTravel 拖拽徽章超出轨迹范围后,再次放回到轨迹范围时,是否恢复轨迹 false
badge_borderWidth 徽章描边宽度 0dp
badge_borderColor 徽章描边颜色 Color.WHITE
badge_dragExtra 触发开始拖拽徽章事件的扩展触摸距离 4dp

关于我

个人主页 邮箱 BGA 系列开源库 QQ 群 GitHub 喵(专注于 GitHub 等一切与程序员有关的内容)
bingoogolapple.cn [email protected] BGA_CODE_CLUB GitHub喵

打赏支持

如果您觉得 BGA 系列开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 🐵就太👍了。您的支持将鼓励我继续创作:octocat:

如果您目前正打算购买通往墙外的梯子,可以使用我的邀请码「YFQ9Q3B」购买 Lantern,双方都赠送三个月的专业版使用时间:beers:

License

Copyright 2015 bingoogolapple

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

bgabadgeview-android's People

Contributors

bingoogolapple avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bgabadgeview-android's Issues

找不到类

莫名其妙找不到import cn.bingoogolapple.badgeview.BGABadgeRadioButton; import cn.bingoogolapple.badgeview.BGABadgeTextView;不知道什么原因。和同事的代码是一样的,但是我的找不到相关的类

重新设计调用的API

1、重载showTextBadge()showDrawableBadge()
因为都是为了设置Badge徽章的内容,且内容的类型不同。可以通过重载降低使用难度。例如统一成 showBadge()
2、只实现一个BGABadgeView
虽然其他的自定义View可以方便使用,但同样增加了复杂度(即使只做了同一件事)
3、基于�第2点,可以去除mIsShowBadgehiddenBadge()isShowBadge()
这是用于隐藏Badge徽章,以及判断当前的显示状态。但实际上显示隐藏完全可以通过View.setVisibility() 来实现相同功能。在拖动完成时就不要hiddenBadge(),由调用者主动去处理。(类似Dialog.OnDimissListener)

Kotlin工程里用不了

org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':demo:compileDebugKotlin'.
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:137)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:107)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:78)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)
at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:63)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:45)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:71)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:45)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:51)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:58)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:33)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)

为什么RadioGroup的监听没效果?

代码:
main_bottom.setOnCheckedChangeListener(tabCheckedListener);
RadioGroup.OnCheckedChangeListener tabCheckedListener = new RadioGroup.OnCheckedChangeListener() {
@OverRide
public void onCheckedChanged(RadioGroup radioGroup, int i) {
((BGABadgeRadioButton) main_bottom.getChildAt(i)).setChecked(true);
viewPager.setCurrentItem(i,false);
}
};
里面的BGABadgeRadioButton 点击没反应

RadioButton

RadioButton 点击事件无效了 Demo里也是

getNavigationBarHeight 的疑问

BGABadgeViewUtil 的 getNavigationBarHeight 里怎么写的是resources.getIdentifier("status_bar_height", "dimen", "android");,而内部调用的checkDeviceHasNavigationBar 里却检查的是 rs.getIdentifier("config_showNavigationBar", "bool", "android")
第一个应该是navigation_bar_height吧?

getNewStartY 里为什么不直接使用 getHeight,如果要手动计算可绘制高度,除了要减去状态栏的高度外,还要减去标题栏的高度(toolbar、custom toolbar...),标题栏高度这个不好处理。

注解生成的BGABadgeRadioButton无法点击选中

无法点击BGABadgeRadioButton来触发以下事件
mTabRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@OverRide
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.brb_main_home:
ToastUtil.show("首页");
break;
case R.id.brb_main_message:
ToastUtil.show("消息");
break;
case R.id.brb_main_discover:
ToastUtil.show("发现");
break;
case R.id.brb_main_me:
ToastUtil.show("我");
break;
}
}
});

radiobutton 没有效果

我是使用的过程中发现BGABadgeRadioButton没有显示任何形式的提示。。。。

BGABadgeTextView的setBadgeGravity没效果

BGABadgeTextView如果宽度设置成wrap_content,,mBadgeTextView.getBadgeViewHelper().setBadgeGravity(BGABadgeViewHelper.BadgeGravity.RightTop);没效果,依然是居中显示只有设置成match_parent或者指定的大小,才有效果

是否支持矢量图格式

app:srcCompat添加无法显示图片 而android:src添加则可以正常显示图片 是暂不支持还是需要其他方式添加

编译完成不了

我compile 'cn.bingoogolapple:bga-badgeview:1.1.3@aar' 这个, gradle 编译太慢啦, 我为什么编译完成不了呢

Wonderful Badge View

1,showCriclePointBadge 应该是笔误 showCirclePointBadge.
2,请教一下为什么要使用AppCompatCheckedTextView、AppCompatTextView、AppCompatRadioButton而不用CheckedTextView、TextView、RadioButton减少依赖?

适配支持

哈喽,非常感谢作者的作品,在新项目中使用了,非常方便;说下现在的问题,设计稿是基于iPhone6的屏幕做的,都是用px标,所以选择了洪洋大神的适配方案,发现draw出来的红点无法适配,不知道能不能支持一下,或者给点思路;附上洪神作品链接 https://github.com/hongyangAndroid/AndroidAutoLayout

重新放回时曲线不能绘制

拖拽徽章,当线断裂,再次放回到半径之内,曲线不能重新绘制

// 处理断开事件
if (BGABadgeViewUtil.getDistanceBetween2Points(mDragCenter, mStickCenter) > mDismissThreshold) {
mDismissAble = true;
postInvalidate();
} else {
mDismissAble = false;
}

在这里加上else体验会更好

添加增量编译支持

as 3.5 之后,as引入了注释处理器增量编译api支持,可以增加编译速度
BGABadge在这个版本下编译出现了以下警告

w: [kapt] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: cn.bingoogolapple.badgeview.compiler.BGABadgeProcessor (NON_INCREMENTAL).

找不到相关的类

按照文档打上
implementation 'cn.bingoogolapple:bga-badgeview-api:1.1.8'
annotationProcessor "cn.bingoogolapple:bga-badgeview-compiler:1.1.8"
却找不到 <cn.bingoogolapple.badgeview.BGABadgeFrameLayout/>
不知道什么原因

关于拖动徽章 位置变动问题

您好,很高兴看到您的控件,本人也非常喜欢,在开发的过程中本人遇到了一个问题,还望请教您一下,问题如下:

1.横向全屏的话 拖动徽章会发现 位置发生的变化,如图所示:
没有拖拽时:
image
拖拽时:
image
会发现 当前徽章位置已经变到下面去了,但是我设置的是 右上角,出现这类问题,还需要您伸出援手,如果看到的话,请回复我~

三步编译完成,引入xml文件中,运行报错

Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class cn.bingoogolapple.badgeview.BGADragBadgeView
Caused by: java.lang.NoSuchMethodException: [class android.content.Context, interface android.util.AttributeSet]

依赖包完全导入不了,不能使用

implementation 'com.github.bingoogolapple.BGABadgeView-Android:api:1.2.0'
kapt 'com.github.bingoogolapple.BGABadgeView-Android:compiler:1.2.0'
依赖包完全导入不了,不能使用

最新

android studio 3.0中,26 版本编译出现以下错误。

Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve cn.bingoogolapple:bga-badgeview:1.1.3.

Could not resolve cn.bingoogolapple:bga-badgeview:1.1.3.
Required by:
project :app

Could not resolve cn.bingoogolapple:bga-badgeview:1.1.3.
> Could not get resource 'https://www.jitpack.io/cn/bingoogolapple/bga-badgeview/1.1.3/bga-badgeview-1.1.3.pom'.
> Could not HEAD 'https://www.jitpack.io/cn/bingoogolapple/bga-badgeview/1.1.3/bga-badgeview-1.1.3.pom'. Received status code 401 from server: Unauthorized

Exception when drag BGABadge

it's just disappear when i drag the bgabadgeview, i found an exception in:

@Override
 public boolean onTouchEvent(MotionEvent event) {
     try {
         switch (event.getAction()) {
             case MotionEvent.ACTION_DOWN:
                 handleActionDown(event);
                 break;
             case MotionEvent.ACTION_MOVE:
                 handleActionMove(event);
                 break;
             case MotionEvent.ACTION_UP:
             case MotionEvent.ACTION_CANCEL:
                 handleActionUp(event);
                 break;
         }
     } catch (Exception e) {
         // 确保自己能被移除
         removeSelfWithException();
     }
     return true;
 }

 private void handleActionDown(MotionEvent event) {
     if (mExplosionAnimator == null && getParent() == null) {
         mDragRadius = Math.min(mBadgeViewHelper.getBadgeRectF().width() / 2, mMaxDragRadius);
         mStickRadius = mDragRadius - mDragStickRadiusDifference;
         mDismissThreshold = (int) (mStickRadius * 10);

         mDismissAble = false;
         mIsDragDisappear = false;

         mWindowManager.addView(this, mLayoutParams);

         updateDragPosition(event.getRawX(), event.getRawY());
     }
 }

image

p.s. the context is activity

BGABadgeRadioGroup 是无法正常构建的

错误: 对于RadioGroup(Context,AttributeSet,int), 找不到合适的构造器
构造器 RadioGroup.RadioGroup(Context)不适用
(实际参数列表和形式参数列表长度不同)
构造器 RadioGroup.RadioGroup(Context,AttributeSet)不适用
(实际参数列表和形式参数列表长度不同)

1549957479 1

是不是有冲突?

我用radiobutton 的时候给他设置属性 singleline = "true",的时候就不显示badge了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.