android - samsung - subir fotos hd a facebook 2018
Compartir imágenes y texto con Facebook en Android (5)
¿Por qué? Porque son Facebook y pueden permitirse tales errores. Por lo tanto, esperan solo imágenes sobre el tipo es "imagen / ". Si el tipo es "text / plain", entonces una URL debe estar contenida en el mensaje. No use .setType (" / *"); De lo contrario, use su SDK. Pero en este caso sacrificará la simplicidad y la flexibilidad de su aplicación.
Facebook, ¿por qué no tomas imágenes y texto en compartir intenciones?
Intento utilizar la intención de compartir Android estándar para compartir una imagen y algo de texto. Mi Intento compartido está configurado correctamente, tengo la imagen allí y he hecho mi parte del trato. Mi código, déjame mostrarte:
public void doShare() {
File image = getShareFile();
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("*/*");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, resultObject.getShareSubject());
shareIntent.putExtra(Intent.EXTRA_TEXT, resultObject.getShareText());
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(image));
shareActionProvider.setShareIntent(shareIntent);
}
Facebook aparece en la lista de aplicaciones que manejarán mi Intento, pero yace! Al hacer clic en Facebook para compartir, dice:
Adjunte solo fotos o un solo video.
Por qué Facebook, ¿por qué? ¿Por qué te presentas como una aplicación que puede manejar mi Intento, y luego me haces parecer estúpido para mis usuarios al no manejar el Intento? Prometiste Facebook.
He visto muchos hilos en todo este sitio y en la web. ¿Alguien ha conseguido que esto funcione sin tener que usar su API?
Esta es mi solución de trabajo sobre cómo compartir imágenes en Facebook a través de mi intención. Lamentablemente, Facebook no acepta EXTRA_TEXT
por lo que solo puede compartir la imagen. Funciona también con otras aplicaciones y con la mayoría de ellas también puede agregar texto.
/**
* Show share dialog
* @param file image to share
* @param text text to add for sharing
*/
private void shareImageAndTextResultIntent(File file, String text) {
// share intent
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, text);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
shareIntent.setType("image/*");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(shareIntent, "send"));
}
Si desea compartir imágenes junto con los subtítulos, deberá usar Facebook SDK.
No sé si hay realmente una intención de compartir con Facebook, pero aquí, consulte este enlace para Twitter. La publicación junto con las respuestas parecen constituir una publicación bien escrita y detallada.
Solo hay una solución para crear el mapa de bits de texto e imagen usando lienzo y compartirlo en Facebook. ( Descargue el código fuente aquí )
Aquí está mi código:
activity_main
<RelativeLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/et_text"
android:layout_width="match_parent"
android:textSize="15dp"
android:layout_height="45dp"
android:layout_marginTop="10dp"
android:background="@drawable/edittext_drawable"
android:hint="Enter your text"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:paddingRight="10dp"
android:inputType="text"
android:imeOptions="actionDone"
android:paddingLeft="10dp"
android:singleLine="true"
android:textColorHint="#979797" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rl_main"
android:background="#ffffff"
android:layout_below="@+id/et_text"
android:layout_above="@+id/tv_share">
<ImageView
android:layout_width="match_parent"
android:layout_height="250dp"
android:src="@drawable/index"
android:scaleType="fitXY"
android:id="@+id/iv_image"
android:layout_marginTop="10dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dp"
android:id="@+id/tv_text"
android:layout_below="@+id/iv_image"
android:layout_margin="10dp"
android:textColor="#000000"
android:maxLines="5"
/>
</RelativeLayout>
<TextView
android:id="@+id/tv_share"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#F38D0A"
android:gravity="center"
android:padding="10dp"
android:layout_margin="10dp"
android:text="Share"
android:textColor="#ffffff"
android:textSize="15dp"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
MainActivity.java
package com.shareimage;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
EditText et_text;
ImageView iv_image;
TextView tv_share,tv_text;
RelativeLayout rl_main;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init(){
et_text = (EditText)findViewById(R.id.et_text);
iv_image = (ImageView)findViewById(R.id.iv_image);
tv_share = (TextView)findViewById(R.id.tv_share);
rl_main = (RelativeLayout)findViewById(R.id.rl_main);
tv_text= (TextView) findViewById(R.id.tv_text);
File dir = new File("/sdcard/Testing/");
try {
if (dir.mkdir()) {
System.out.println("Directory created");
} else {
System.out.println("Directory is not created");
}
} catch (Exception e) {
e.printStackTrace();
}
tv_share.setOnClickListener(this);
et_text.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
tv_text.setText(et_text.getText().toString());
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.tv_share:
Bitmap bitmap1 = loadBitmapFromView(rl_main, rl_main.getWidth(), rl_main.getHeight());
saveBitmap(bitmap1);
String str_screenshot = "/sdcard/Testing/"+"testing" + ".jpg";
fn_share(str_screenshot);
break;
}
}
public void saveBitmap(Bitmap bitmap) {
File imagePath = new File("/sdcard/Testing/"+"testing" + ".jpg");
FileOutputStream fos;
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
Log.e("ImageSave", "Saveimage");
} catch (FileNotFoundException e) {
Log.e("GREC", e.getMessage(), e);
} catch (IOException e) {
Log.e("GREC", e.getMessage(), e);
}
}
public static Bitmap loadBitmapFromView(View v, int width, int height) {
Bitmap b = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.draw(c);
return b;
}
public void fn_share(String path) {
File file = new File("/mnt/" + path);
Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath());
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Share Image"));
}
}
File image = getShareFile(); // name of files
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("*/*");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, resultObject.getShareSubject());
shareIntent.putExtra(Intent.EXTRA_TEXT, resultObject.getShareText()); // sharing text
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(image)); // sharing image
shareActionProvider.setShareIntent(shareIntent);