Je veux mettre une image de ma galerie de téléphone adaptent le ImageButton, et aussi sans qu'il soit mis en rotation . Quand j'essaie d'accéder à l'image de ma galerie, ça ne me va pas bien et mon imageButton vient quand il est tourné. Comment puis-je le débarrasser de ça.Comment faire un ajustement d'image dans un ImageButton en utilisant la méthode onActivityResult
Ci-dessous est java
Code
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
public class PostActivity extends AppCompatActivity {
private ImageButton imageSelect;
private static final int GALLERY_REQUEST = 1;
private EditText mPostTitle;
private EditText mPostDesc;
private Button postButton;
private Uri imageUri = null;
private ProgressDialog mProgress;
private StorageReference mStorage;
private DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.post_activity);
mStorage = FirebaseStorage.getInstance().getReference();
mDatabase = FirebaseDatabase.getInstance().getReference().child("Blog");
/* getSupportActionBar().setDisplayShowHomeEnabled(true);
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Post a Picture");*/
mProgress = new ProgressDialog(this);
imageSelect = (ImageButton) findViewById(R.id.imageSelect);
mPostTitle = (EditText) findViewById(R.id.mPostTitle);
mPostDesc = (EditText) findViewById(R.id.mPostDesc);
postButton = (Button) findViewById(R.id.postButton);
imageSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("image/");
startActivityForResult(galleryIntent, GALLERY_REQUEST);
}
});
postButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startPosting();
}
});
}
private void startPosting() {
mProgress.setMessage("Uploading Image...");
mProgress.show();
final String title_val = mPostTitle.getText().toString().trim();
final String desc_val = mPostDesc.getText().toString().trim();
if(!TextUtils.isEmpty(title_val) &&!TextUtils.isEmpty(desc_val) && imageUri!=null){
StorageReference filepath = mStorage.child("BlogImages").child(imageUri.getLastPathSegment());
filepath.putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUri = taskSnapshot.getDownloadUrl();
DatabaseReference newPost = mDatabase.push();
newPost.child("title").setValue(title_val);
newPost.child("description").setValue(desc_val);
newPost.child("imageUrl").setValue(downloadUri.toString());
// newPost.child("uid").setValue(FirebaseAuth.getc);
mProgress.dismiss();
startActivity(new Intent(PostActivity.this,MainActivity.class));
}
});
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GALLERY_REQUEST && resultCode == RESULT_OK) {
imageUri = data.getData();
imageSelect.setImageURI(imageUri);
}
}
}
donc mon résultat onActivityResult
est également inclus ci-dessus.
Ci-dessous mon xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="wrap_content">
<ImageButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageSelect"
android:layout_gravity="center_horizontal"
android:background="#00ffffff"
android:src="@mipmap/add_btn"
android:scaleType="centerCrop" />
<include layout="@layout/content_post" />
</LinearLayout>
</ScrollView>
</LinearLayout>
un coup d'oeil à picasso, sa bibliothèque java pour Android qui aide avec des images, vous avez un peu pour s'y habituer, mais sa grande pour le chargement des images en fonction de ce que votre code fait. – namlik