Android平台上的图片上传代码中的错误

时间:2019-08-17 09:12:34

标签: java android android-studio image-uploading

我在android上开发了用于上传图片的代码,但是遇到了一些代码错误。我在互联网上搜索解决方案,但无法成功解决问题?我使用了以下代码:


import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.net.Uri;




public class MainActivity extends AppCompatActivity {
    private static final int SELECTED_PICTURE=1;
    ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        iv=(ImageView)findViewById(R.id.imageView1);
    }
    public void btnClick(View v){
        Intent i=new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(i,SELECTED_PICTURE);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        super.onActivityResult(requestCode,resultCode, data);
        switch (requestCode)
        {
            case SELECTED_PICTURE:
                if(resultCode==RESULT_OK)
                {
                    Uri uri=data.getData();
                    String[]projection={MediaStore.Images.Media.DATA};
                    Cursor cursor=getContentResolver().query(uri, projection, null, null, null);
                    cursor.moveToFirst();
                    int ColumnIndex= cursor.getColumnIndex(projection[0]);
                    String filePath=cursor.getString(ColumnIndex);
                    cursor.close();
                    Bitmap YourSelectedImage=BitmapFactory.decodeFile(filePath);
                    Drawable d=new BitmapDrawable(YourSelectedImage);
                    iv.setBackground(d);
                }
                break;
            ault:
           break;
        }
    }
}
  

在第49行(iv.setBackground(d);)中,出现错误“ call require   API 16 android.view.View#setBackground。第52行(ault:)中有   未使用的标签错误的错误。第53行(break;)中存在错误   无法到达的声明。

请帮助我解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用:

iv.setBackgroundDrawable(d);

Explanation为何显示错误:

int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
    setBackgroundDrawable();
} else {
    setBackground();
}
相关问题