Ich bin neu ein Android, ich möchte eine Documents Scanner-Anwendung machen. Daher nutze ich für die Crop-Funktion die GitHub-Bibliothek, um das Bild in einer Listenansicht anzuzeigen. Dazu nutze ich die Universal Image Loader Library auch aus dem Github aber immer noch etwas Fehler. Diese Bibliothek habe ich ihn auf einem libs OrdnerSo platzieren Sie ein Bild auf einem Anpassen ListView
Bitte geben Sie mir einige einfache Lösung
Hier ist meine Haupttätigkeit ist
public class MainActivity extends AppCompatActivity {
Button btn;
Context context = this;
public static final int REQUEST_Code = 99;
ImageView mImageView;
int prefrences = ScanConstants.OPEN_CAMERA;
ListView mListView;
ArrayAdapter<String > images_adapter;
ImageLoader imageLoader;
ArrayList images_Uri;
DisplayImageOptions options;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView= (ListView) findViewById(R.id.mListView);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showdialogebox();
}
});
}
private void showdialogebox() {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Take Phote");
final String item[] = {"Take form cam", "Take form file"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, item);
AlertDialog.Builder builder1 = builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
Intent intent = new Intent(getApplicationContext(), ScanActivity.class);
intent.putExtra(ScanConstants.OPEN_INTENT_PREFERENCE, prefrences);
startActivityForResult(intent, REQUEST_Code);
}
}
});
builder.show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Uri uri = data.getExtras().getParcelable(ScanConstants.SCANNED_RESULT);
getContentResolver().delete(uri, null, null);
images_Uri.add(uri);
Image_Adapter adapter=new Image_Adapter(getApplicationContext(),R.layout.single_image_view,images_Uri);
mListView.setAdapter(adapter);
}
}
Hier ist meine Image_Adapter Klasse Code
public class Image_Adapter extends ArrayAdapter<ViewHolderImage> {
Context context;
int resourceid;
public final static String IMAGE_PATH = Environment
.getExternalStorageDirectory().getPath() + "/scanSample";
ArrayList images=null;
public Image_Adapter(Context context, int resource, ArrayList images) {
super(context,resource,images);
this.context=context;
this.resourceid=resource;
this.images=images;
}
ViewHolderImage holderImage=null;
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView==null){
LayoutInflater inflater=((Activity)context).getLayoutInflater();
convertView=inflater.inflate(resourceid,parent,false);
holderImage=new ViewHolderImage();
holderImage.imageView=(ImageView)convertView.findViewById(R.id.mImageView);
convertView.setTag(holderImage);
}else
{
holderImage=(ViewHolderImage)convertView.getTag();
}
holderImage.imageView.setMaxWidth(100);
holderImage.imageView.setMaxWidth(100);
ImageLoader imageLoader =null;
imageLoader.displayImage(IMAGE_PATH,holderImage.imageView);
return convertView;
}
}
ViewHolderImage-Klassencode ist
enter code here
public class ViewHolderImage {
ImageView imageView;
}
Dies ist der Fehler zeigen auf der Log-Katze `
>>>> Normal User
11-24 22:22:11.180 25628-25628/com.example.hassanjan.documentsscannerapp1 E/dalvikvm: >>>>> com.example.hassanjan.documentsscannerapp1 [ userId:0 | appId:10236 ]
11-24 22:22:11.490 25628-25628/com.example.hassanjan.documentsscannerapp1 E/InstantRun: Could not find slices in APK; aborting.
11-24 22:22:11.720 25628-25628/com.example.hassanjan.documentsscannerapp1 E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
11-24 22:22:16.906 25628-25628/com.example.hassanjan.documentsscannerapp1 E/ViewRootImpl: sendUserActionEvent() mView == null
11-24 22:22:33.664 25628-25628/com.example.hassanjan.documentsscannerapp1 E/ViewRootImpl: sendUserActionEvent() mView == null
11-24 22:22:42.223 25628-25628/com.example.hassanjan.documentsscannerapp1 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.hassanjan.documentsscannerapp1, PID: 25628 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=99, result=-1, data=Intent { (has extras) }} to activity {com.example.hassanjan.documentsscannerapp1/com.example.hassanjan.documentsscannerapp1.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.deliverResults(ActivityThread.java:3580)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3623)
at android.app.ActivityThread.access$1400(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1328)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5487)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.hassanjan.documentsscannerapp1.MainActivity.onActivityResult(MainActivity.java:114)
at android.app.Activity.dispatchActivityResult(Activity.java:5643)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3576)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3623)
at android.app.ActivityThread.access$1400(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1328)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5487)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
** Fehler zeigen auf Hassanjan114 auf Hauptaktivität **
images_Uri.add(uri);
Bitte teilen Sie den Fehler eine benutzerdefinierte Listenansicht zu machen. Basierend auf dem, was ich verstehe, sollten Sie den 'ListView' Adapter in' onCreate() 'setzen. Außerdem sehe ich keine Aufrufe von 'notifyDataSetChanged()' im 'Adapter'. –
Sie sollten grandle verwenden, anstatt Bibliotheken in den libs-Ordner zu stellen. – heloisasim
müssen Sie ein benutzerdefiniertes Layout auch für Listview erstellen –