我想从一个Android应用程序推文和图片。
我可以把一个图片放在一个应用程序的屏幕上推特,而应用程序可以通过一个按钮打开推特表单。
它只显示空白的tweet表单。
我如何将这些文字和图像从Android应用程序移动到tweet表单?
mainactivity.kt
package com.example.tweets
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import android.content.Intent
import android.net.Uri
import android.util.Log
import androidx.core.app.ShareCompat
import java.io.File
import android.R.attr.path
import android.graphics.BitmapFactory
import kotlinx.android.synthetic.main.activity_main.*
import androidx.core.app.ComponentActivity.ExtraData
import androidx.core.content.ContextCompat.getSystemService
import android.icu.lang.UCharacter.GraphemeClusterBreak.T
import java.io.IOException
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
try {resources.assets.open("sample.jpg").use { istream ->
val bitmap = BitmapFactory.decodeStream(istream)
sample.setImageBitmap(bitmap)
}
} catch (e: IOException) {
e.printStackTrace()
}
val intentTweetButton: Button = findViewById(R.id.intentTweetButton)
intentTweetButton.setOnClickListener {
shareTwitter()
}
/*
val shareCompatButton: Button = findViewById(R.id.shareCompatButton)
shareCompatButton.setOnClickListener {
shareCompat()
}
*/
}
fun shareTwitter() {
val message = "shareTwitter intent tweet"
val bmpUri = Uri.parse("file://$path")
try {
val sharingIntent = Intent(Intent.ACTION_SEND)
sharingIntent.setClassName("com.twitter.android", "com.twitter.android.PostActivity")
val imageUri = Uri.parse("sample.jpg")
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Hello")
sharingIntent.putExtra(Intent.EXTRA_STREAM, imageUri)
sharingIntent.type = "image/jpeg"
sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(sharingIntent)
}
catch (e: Exception) {
Log.e("In Exception", "Comes here")
val i = Intent()
i.putExtra(Intent.EXTRA_TEXT, message)
i.action = Intent.ACTION_VIEW
i.data = Uri.parse("https://mobile.twitter.com/compose/tweet")
startActivity(i)
}
}
/*
fun shareCompat() {
val message = "shareCompat"
val builder = ShareCompat.IntentBuilder.from(this)
builder.setChooserTitle("Choose App")
builder.setText(message)
builder.setType("text/plain")
builder.addStream(Uri.fromFile(File("sample.jpg")))
builder.setType("image/jpg")
builder.startChooser()
}
*/
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/sample"
android:scaleType="centerCrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/img_description"
tools:ignore="InvalidId" />
<Button
android:id="@+id/intentTweetButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:text="intent tweet"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!--
<Button
android:id="@+id/shareCompatButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:text="ShareCompat"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/intentTweetButton" />
-->
</androidx.constraintlayout.widget.ConstraintLayout>
我尝试使用share compat
而不是intent
,但也不起作用。
此外,share compat
仅适用于在手机上下载了Twitter应用程序的用户,所以我更喜欢使用intent
从Android应用程序中发布文本和图像。
该图像位于app/assets/sample.jpg
上。
Android Studio 3.5.3
Kotlin插件1.3.50
试试这个
private void shareTwitter(String message) {
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
tweetIntent.putExtra(Intent.EXTRA_TEXT, "This is a Test.");
tweetIntent.setType("text/plain");
PackageManager packManager = getPackageManager();
List<ResolveInfo> resolvedInfoList = packManager.queryIntentActivities(tweetIntent, PackageManager.MATCH_DEFAULT_ONLY);
boolean resolved = false;
for (ResolveInfo resolveInfo : resolvedInfoList) {
if (resolveInfo.activityInfo.packageName.startsWith("com.twitter.android")) {
tweetIntent.setClassName(
resolveInfo.activityInfo.packageName,
resolveInfo.activityInfo.name);
resolved = true;
break;
}
}
if (resolved) {
startActivity(tweetIntent);
} else {
Intent i = new Intent();
i.putExtra(Intent.EXTRA_TEXT, message);
i.setAction(Intent.ACTION_VIEW);
i.setData(Uri.parse("https://twitter.com/intent/tweet?text=" + urlEncode(message)));
startActivity(i);
Toast.makeText(this, "Twitter app isn't found", Toast.LENGTH_LONG).show();
}
}
private String urlEncode(String s) {
try {
return URLEncoder.encode(s, "UTF-8");
} catch (UnsupportedEncodingException e) {
Log.wtf(TAG, "UTF-8 should always be supported", e);
return "";
}
}
我运行 2 命令 keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -有效期 9125 -keystore keystore.jks 此命令创建keystore.jks。将该密钥的证书导出为PEM格式(upload _ certificatie.pem)。我会附上upload _ certificatie.pem,回复Googl
问题内容: 我试图在Eclipse中将文本字段添加到我的Android应用程序中,但是随后我将该选项拖到图形布局上,底部出现一条消息。它显示为 即使我去也没有错误日志选项。整个设计器现在已经没有用了,因为直到直接从xml中删除,我才能使用它。是什么导致此错误,我该如何解决?我正在运行最新版本(截至今天,6月30日至14日)和Windows 8 Pro x64。 这是我的完整布局代码: 问题答案:
我有一张图片上面有文字。我需要从图像中提取文本。 例如:假设我有一个图像,在图像之上我有一个标志“诺基亚”。我想从图像中提取作为文本的徽标。
在这段代码中,我需要一个新的行之前谢谢!但是我没有得到任何新的线我是新的android开发所以,不能指出错误。
最近我在研究Kotlin。首先,kotlin不支持。 所以我使用
我想在片段中创建一个recyclerView,但它显示错误“java.lang.IllegalStateException:recylerView_Main必须不是null at com.gph.bottomNavigation.FragmentMe.onCreateView(FragmentMe.kt:28)” 问题1)请帮助解决此问题。 问题2)我只在没有任何片段的空项目中创建了一个recyc