Android 如何在另一个活动中从uri设置导航抽屉查看器的图像
如何使用下载URI设置导航抽屉中显示的用户图像Android 如何在另一个活动中从uri设置导航抽屉查看器的图像,android,image,firebase,picasso,Android,Image,Firebase,Picasso,如何使用下载URI设置导航抽屉中显示的用户图像 public class UserProfileActivity extends AppCompatActivity { private FloatingActionButton buttonSaveImage; private FloatingActionButton buttonSelectImage; private ImageView imageView; private static final int
public class UserProfileActivity extends AppCompatActivity {
private FloatingActionButton buttonSaveImage;
private FloatingActionButton buttonSelectImage;
private ImageView imageView;
private static final int PICK_IMAGE_REQUEST = 123;
private Uri filePath;
private FirebaseAuth mAuth;
private FirebaseStorage fStorage;
private ProgressDialog progressDialog;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
filePath = data.getData();
try {
Picasso.with(UserProfileActivity.this).load(filePath).fit().centerCrop().into(imageView);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
mAuth = FirebaseAuth.getInstance();
fStorage = FirebaseStorage.getInstance();
buttonSelectImage = (FloatingActionButton) findViewById(R.id.fab);
buttonSaveImage = (FloatingActionButton) findViewById(R.id.fab2);
imageView = (ImageView) findViewById(R.id.imageView);
progressDialog = new ProgressDialog(UserProfileActivity.this);
progressDialog.setMessage("Yükleniyor...");
progressDialog.setCancelable(false);
progressDialog.show();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
final View headerView = navigationView.getHeaderView(0);
final ImageView imageViewUser = (ImageView)headerView.findViewById(R.id.profile_image);
StorageReference storageRef = fStorage.getReference().child("users").child(mAuth.getCurrentUser().getUid());
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.i("URI VALUE","->"+ uri);
final ImageView imageViewUser = (ImageView)headerView.findViewById(R.id.profile_image);
progressDialog.dismiss();
Picasso.with(UserProfileActivity.this).load(uri).fit().centerCrop().into(imageView);
Picasso.with(UserProfileActivity.this).load(uri).fit().centerCrop().into(imageViewUser);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressDialog.dismiss();
Toast.makeText(UserProfileActivity.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
buttonSelectImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonSelectImage.setVisibility(View.INVISIBLE);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Resim Seçiniz"), PICK_IMAGE_REQUEST);
buttonSaveImage.setVisibility(View.VISIBLE);
}
});
buttonSaveImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonSaveImage.setVisibility(View.INVISIBLE);
if (filePath != null) {
progressDialog = new ProgressDialog(UserProfileActivity.this);
progressDialog.setMessage("Yükleniyor...");
progressDialog.setCancelable(false);
progressDialog.show();
StorageReference storageRef = fStorage.getReference().child("users").child(mAuth.getCurrentUser().getUid());
storageRef.putFile(filePath).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressDialog.dismiss();
Toast.makeText(UserProfileActivity.this, "Fotoğraf başarılı bir şekilde kaydedildi.", Toast.LENGTH_SHORT).show();
imageView.setImageBitmap(null);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressDialog.dismiss();
Toast.makeText(UserProfileActivity.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
buttonSelectImage.setVisibility(View.VISIBLE);
}
});
}
}
公共类UserProfileActivity扩展了AppCompatActivity{
私有浮动操作按钮按钮视觉图像;
私人浮动操作按钮选择图像;
私人影像视图;
私有静态最终整数选取图像请求=123;
私有Uri文件路径;
私人消防队;
私有火基存储;
私有进程对话;
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==PICK\u IMAGE\u REQUEST&&resultCode==RESULT\u OK&&data!=null&&data.getData()!=null){
filePath=data.getData();
试一试{
Picasso.with(UserProfileActivity.this).load(filePath.fit().centerCrop().into(imageView);
}捕获(例外e){
e、 printStackTrace();
}
}
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u user\u profile);
mAuth=FirebaseAuth.getInstance();
fStorage=FirebaseStorage.getInstance();
buttonSelectImage=(FloatingActionButton)findViewById(R.id.fab);
buttonSaveImage=(FloatingActionButton)findViewById(R.id.fab2);
imageView=(imageView)findViewById(R.id.imageView);
progressDialog=新建progressDialog(UserProfileActivity.this);
progressDialog.setMessage(“Yükleniyor…”);
progressDialog.setCancelable(假);
progressDialog.show();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
最终视图headerView=navigationView.getHeaderView(0);
最终ImageView ImageView用户=(ImageView)headerView.findViewById(R.id.profile\u图像);
StorageReference-storageRef=fStorage.getReference().child(“用户”).child(mAuth.getCurrentUser().getUid());
storageRef.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时的公共无效(Uri){
Log.i(“URI值”,“->”+URI);
最终ImageView ImageView用户=(ImageView)headerView.findViewById(R.id.profile\u图像);
progressDialog.disclose();
Picasso.with(UserProfileActivity.this).load(uri).fit().centerCrop().into(imageView);
Picasso.with(UserProfileActivity.this).load(uri).fit().centerCrop().into(imageViewUser);
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
progressDialog.disclose();
Toast.makeText(UserProfileActivity.this,“+e.getMessage(),Toast.LENGTH_SHORT.show();
}
});
buttonSelectImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
按钮SelectImage.setVisibility(视图不可见);
意图=新意图();
intent.setType(“image/*”);
intent.setAction(intent.ACTION\u GET\u CONTENT);
startActivityForResult(Intent.createChooser(Intent,“Resim Seçinizing”),PICK_IMAGE_请求);
按钮SaveImage.setVisibility(视图可见);
}
});
ButtonSavimage.setOnClickListener(新视图.OnClickListener()中){
@凌驾
公共void onClick(视图){
按钮SaveImage.setVisibility(视图不可见);
if(filePath!=null){
progressDialog=新建progressDialog(UserProfileActivity.this);
progressDialog.setMessage(“Yükleniyor…”);
progressDialog.setCancelable(假);
progressDialog.show();
StorageReference-storageRef=fStorage.getReference().child(“用户”).child(mAuth.getCurrentUser().getUid());
storageRef.putFile(filePath).addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
progressDialog.disclose();
Toast.makeText(UserProfileActivity.this,“Fotoğraf başarılıbirşekilde kaydedildi.”,Toast.LENGTH_SHORT).show();
setImageBitmap(空);
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
progressDialog.disclose();
Toast.makeText(UserProfileActivity.this,“+e.getMessage(),Toast.LENGTH_SHORT.show();
}
});
}
按钮SelectImage.setVisibility(View.VISIBLE);
}
});
}
}
我使用firebase存储来存储图像,我做得很好,但我无法在导航抽屉图像查看器中显示我上载给用户的图像
纳维盖顿收割台
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@color/overloyBackground"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp">
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/user"
app:border_color="@android:color/white"
app:border_width="3dp" />
<TextView
android:id="@+id/txtFullName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:textSize="24sp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
</LinearLayout>
xmlns:android=”http://schemas.android.com/apk/res/android"
xmlns:app=”http://schemas.android.com/apk/res-auto"
android:layout\u width=“匹配父项”
android:layout_height=“@dimen/nav_header_height”
android:background=“@color/overloyBackground”
android:gravity=“底部”
android:orientation=“垂直”
android:paddingBottom=“16dp”
android:paddingLeft=“16dp”
android:paddingRight=“16dp”
android:paddingTop=“16dp”>
活动\用户\配置文件
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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="vertical">
<LinearLayout
android:id="@+id/viewA"
android:layout_width="match_parent"
android:layout_height="463dp"
android:layout_weight="0.6"
android:background="@android:color/white"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
app:srcCompat="@drawable/no_image_user" />
</LinearLayout>
<LinearLayout
android:id="@+id/viewB"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:background="@android:color/white"
android:orientation="horizontal">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="53dp"
android:layout_weight="1"
android:text="Name"
android:textSize="25sp"
/>
</LinearLayout>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="69dp"
android:layout_height="69dp"
android:layout_margin="16dp"
android:background="@android:color/transparent"
android:clickable="true"
android:src="@drawable/camera"
app:layout_anchor="@id/viewA"
app:layout_anchorGravity="bottom|right|end"
tools:layout_editor_absoluteX="250dp"
tools:layout_editor_absoluteY="146dp" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab2"
android:layout_width="69dp"
android:layout_height="69dp"
android:layout_margin="16dp"
android:background="@android:color/transparent"
android:clickable="true"
android:visibility="visible"
android:src="@drawable/onay"
app:layout_anchor="@id/viewA"
app:layout_anchorGravity="bottom|right|end"
tools:layout_editor_absoluteX="299dp"
tools:layout_editor_absoluteY="146dp"/>
xmlns:androi
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
StorageReference storageRef = fStorage.getReference().child("users").child(mAuth.getCurrentUser().getUid());
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
View headerView = navigationView.getHeaderView(0);
final ImageView imageViewUser = (ImageView)headerView.findViewById(R.id.profile_image);
progressDialog.dismiss();
Picasso.with(UserProfileActivity.this).load(uri).fit().centerCrop().into(imageViewUser);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressDialog.dismiss();
Toast.makeText(UserProfileActivity.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
final ImageView imageViewUser = (ImageView)headerView.findViewById(R.id.profile_image);
final ImageView imageViewUser = (ImageView)headerView.findViewById(R.id.txtFullName);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
View headerView = navigationView.getHeaderView(0);
final ImageView imageViewUser = (ImageView)headerView.findViewById(R.id.profile_image);
StorageReference storageRef = fStorage.getReference().child("users").child(mAuth.getCurrentUser().getUid());
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.i("URI VALUE","->"+ uri)
progressDialog.dismiss();
Picasso.with(UserProfileActivity.this).load(uri).fit().centerCrop().into(imageViewUser);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
cannot be converted to OnNavigationItemSelectedListener get this error on the line View headerView = navigationView.getHeaderView(0);
progressDialog.dismiss();
Toast.makeText(UserProfileActivity.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
final ImageView imageViewUser = (ImageView)navigationView.getHeaderView(0).(R.id.profile_image);
private void changeUserPhoto() {
StorageReference storageRef = fStorage.getReference().child("users").child(mAuth.getCurrentUser().getUid());
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
photoURL = uri.toString();
Picasso.with(UserProfileActivity.this).load(uri).fit().centerCrop().into(imageView);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
}
private void changePhoto(String myUrl) {
Picasso.with(this).load(myUrl).transform(new PhotoCircleTransform()).into(profile_image);
}