如何在Java项目中使用Kotlin库?

Ver*_*liy 10 java android kotlin android-studio

我找到了一个符合我目的的库,但它是用 Kotlin 编写的。我可以在Java项目中使用它吗?

框架: https: //github.com/mpetlyuk/initial_tips

在 Kotlin 上的用法:

// Create view for your tip
val inflater = LayoutInflater.from(Context)
val tipView = DataBindingUtil.inflate<ViewDataBinding>(inflater, R.layout.item_tooltip, null, false).getRoot()

// Create tip
val tip = Tooltip.Builder()
    .attachTooltipView(tipView)
    .withEnterAnimation(AnimationComposer(FadeInAnimator()).duration(ANIM_DURATION))
    .withExitAnimation(AnimationComposer(FadeOutAnimator()).duration(ANIM_DURATION))
    .withGravity(TipVerticalGravity.BOTTOM, TipHorizontalGravity.LEFT)
    .withAnchorView(/* anchor view */)
    .build()

// Create a queue of tips
val tooltipsQueue = LinkedBlockingQueue<Tip>(listOf(tip))

// Create a queue of tips
TipsManager.showTips(binding.root as ViewGroup, ContextCompat.getColor(this, 0 /* your resource color for dimming */)) { tooltipsQueue }
Run Code Online (Sandbox Code Playgroud)

Tua*_*ong 4

您首先需要在您的应用程序中添加对 Kotlin 的支持。只需创建临时 kotlin 文件,android studio 将指导您如何操作。

TextView tipView = (TextView) LayoutInflater.from(this).inflate(R.layout.item_tooltip, null, false).getRootView();
Tooltip tip = new Tooltip.Builder()
        .attachTooltipView(tipView)
        .withEnterAnimation(new AnimationComposer<BaseViewAnimator>(new FadeInAnimator()).duration(500))
        .withExitAnimation(new AnimationComposer<BaseViewAnimator>(new FadeOutAnimator()).duration(500))
        .withGravity(TipVerticalGravity.BOTTOM, TipHorizontalGravity.LEFT)
        .withAnchorView(loginButton)
        .build();

List<Tip> tips = new ArrayList<>();
tips.add(tip);
final LinkedBlockingQueue<Tip> tooltipsQueue = new LinkedBlockingQueue<>(tips);
TipsManager.showTips(rootView, R.color.colorAccent, new Function0<Queue<Tip>>() {
    @Override
    public Queue<Tip> invoke() {
        return tooltipsQueue;
    }
});
Run Code Online (Sandbox Code Playgroud)