我找到了一个符合我目的的库,但它是用 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) 我的资产目录中有一个图像,我需要UIImage
使用比例参数获取该图像 ( )。只有一种UIImage(data: scale:)
方法,但我无法使用该名称从资产中获取数据。我总是得到url = nil
。也许问题出在目录结构上!?
我的代码:
if let url = Bundle.main.url(forResource: "countdown_photo_1", withExtension: "jpg") {
return UIImage(data: try! Data(contentsOf: url), scale: scale)
}
Run Code Online (Sandbox Code Playgroud)
我的目录结构:
我的内容.json:
{
"images" : [
{
"idiom" : "universal",
"filename" : "countdown_photo_1.jpg"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Run Code Online (Sandbox Code Playgroud) ATM在我的Android应用程序中写入SQLite时,我这样做:
try {
for (User user: users) {
ContentValues values = new ContentValues();
databaseManager.database.beginTransaction();
values.put("user_name", user.getName());
values.put("user_email", user.getEmail());
databaseManager.database.insert("users", null, values);
}
databaseManager.database.setTransactionSuccessful();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
databaseManager.database.endTransaction();
}
Run Code Online (Sandbox Code Playgroud)
但是当我从数据库中读取时,我不使用begin,setsuccessful和end:
Cursor cursor = databaseManager.database.rawQuery(SQLQueries.getUsers(), null);
if (cursor.moveToFirst()) {
if (cursor!=null) {
do {
User user = new User();
try {
user.setName(cursor.getString(cursor.getColumnIndexOrThrow("user_name")));
user.setEmail(cursor.getString(cursor.getColumnIndexOrThrow("user_email")));
} catch (Exception ex) {
ex.printStackTrace();
}
users.add(user);
} while (cursor.moveToNext());
}
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
cursor = …
Run Code Online (Sandbox Code Playgroud)