它将我带到图库以选择图像,但未显示在应用程序中,当单击上传按钮时,它只是一个空白图像视图
package com.example.stdio9;
import android.widget.ImageView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.google.android.gms.tasks.OnSuccessListener;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.single.PermissionListener;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
public class update_profile extends AppCompatActivity {
ImageView uimage;
EditText uname;
Button btnupdate;
DatabaseReference dbreference;
StorageReference storageReference;
Uri filepath;
Bitmap bitmap;
String UserId="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_update_profile);
uimage=(ImageView)findViewById(R.id.uimage);
uname=(EditText)findViewById(R.id.uname);
btnupdate=(Button)findViewById(R.id.btnupdate);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
UserId=user.getUid();
dbreference = FirebaseDatabase.getInstance().getReference().child("userprofile");
storageReference = FirebaseStorage.getInstance().getReference();
uimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Dexter.withContext(getApplicationContext())
.withPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
.withListener(new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Please select file"),101);
}
@Override
public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) {
}
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) {
permissionToken.continuePermissionRequest();
}
}).check();
}
});
btnupdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
updatetofirebase();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==101 &&requestCode==RESULT_OK)
{
filepath=data.getData();
try
{
InputStream inputStream = getContentResolver().openInputStream(filepath);
bitmap= BitmapFactory.decodeStream(inputStream);
uimage.setImageBitmap(bitmap);
}catch(Exception ex)
{
Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
public void updatetofirebase()
{
final ProgressDialog pd = new ProgressDialog(this);
pd.setTitle("Uploading");
pd.show();
final StorageReference uploader = storageReference.child("profileimages/"+"img"+System.currentTimeMillis());
uploader.putFile(filepath)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
uploader.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
{
final Map<String,Object> map = new HashMap<>();
map.put("uimage",uri.toString());
map.put("uname",uname.getText().toString());
dbreference.child(UserId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists())
dbreference.child(UserId).updateChildren(map);
else
dbreference.child(UserId).setValue(map);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
pd.dismiss();
Toast.makeText(getApplicationContext(), "Updated Successfully", Toast.LENGTH_SHORT).show();
}
}
});
}
})
.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(@NonNull UploadTask.TaskSnapshot snapshot) {
float percent = (100*snapshot.getBytesTransferred())/snapshot.getTotalByteCount();
pd.setMessage("Uploaded :"+(int)percent+"%");
}
});
}
@Override
protected void onStart() {
super.onStart();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
UserId=user.getUid();
dbreference.child(UserId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists()){
uname.setText(snapshot.child("uname").getValue().toString());
Glide.with(getApplicationContext()).load(snapshot.child("uimage").getValue().toString()).into(uimage);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat 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"
android:orientation="vertical"
tools:context=".update_profile">
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/uimage"
android:layout_marginTop="100dp"
android:layout_gravity="center"
android:src="@drawable/ic_person"/>
<EditText
android:layout_width="300dp"
android:layout_height="wrap_content"
android:id="@+id/uname"
android:textSize="20sp"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:hint="Enter your name"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Update"
android:id="@+id/btnupdate"
android:layout_gravity="center"
android:textSize="25sp"
android:layout_marginTop="20sp"
android:padding="12dp"/>
</androidx.appcompat.widget.LinearLayoutCompat>
运行时显示此错误
java.lang.IllegalArgumentException:uri不能为空
以下两处给出错误的行显示了uri错误
public void onSuccess(Uri uri) {
{
final Map<String,Object> map = new HashMap<>();
map.put("uimage",uri.toString());
map.put("uname",uname.getText().toString());
Dexter.withContext(getApplicationContext())
.withPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
.withListener(new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Please select file"),101);
您只需要更新如下所示的if语句即可。
if(requestCode == 101 && resultCode == RESULT_OK){
}
我有一个装满图像的文件夹要在我正在创建的游戏中实现,我想在窗口中显示这些。这是我迄今为止的代码。 这将是一个程序在IntelliJ/中从jar运行。“资产”文件夹与此文件位于同一目录中。我没有发现文件路径错误,所以我假设它可以找到图像,但它不会出现在屏幕上,而矩形会出现。 公平警告,我正在从头开始学习JavaFX,我发现没有太多关于事物如何工作的解释,所以这可能是一个愚蠢的问题。
我的程序在Eclipse中运行完美,但是当我导出它时,图像不显示出来。 我的设置看起来像 我参考标志。来自MenuMain的png。java,我尝试了很多方法; 前3个在Eclipse中工作,但都不在Jar中工作。我检查了Jar文件,res文件夹在那里,所有的图像也是如此。我还尝试编辑MANIFEST. MF并添加了类路径: 但它仍然不起作用。我在运行Jar时没有发现任何错误,其他所有内容都显示在
我想显示图像,但不知道该怎么做。我不知道是必须安装一些库文件,还是简单地安装就可以了。实际上我想做图像处理,但首先我必须接受图像输入并显示图像,然后我可以得到图像处理的效果作为输出,并决定它(算法)是否正确。我只安装了eclipse。我也在谷歌上搜索过,但是无论他们建议什么都不管用。要么我得装点什么,要么不装。 我已经尝试了以下代码: 它只是显示一个图形窗口,但不能显示图像“bishnu.jpg”
我的代码在下面..在中 在onActivityResult(int requestCode,int resultCode,Intent data)中
我尝试了一切,但图像不会显示,我试图缩小图像,但没有用,我试图改变路径,我试图更改图像的位置,但没有帮助,我试图在互联网上搜索,但什么都没有。 我看到的只是空白的图形用户界面,没有文本和图像。如果你能帮我,你会帮我一个大忙。 代码如下: