2016-11-24 57 views
0

我是一个新的android我想创建一个文档扫描仪应用程序。所以我使用作物功能的GitHub库知道我想在列表视图上显示裁剪图像。为此,我还使用通用图像加载程序库也从github,但仍然是错误的。这个库我把它放在一个库文件夹如何在自定义列表上放置图像

请给我一些简单的解决方案

这里我主要活动是

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); 
} 
} 

这里是我的Image_Adapter类代码

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; 
} 
} 

ViewHolder图片分类代码是

enter code here 
    public class ViewHolderImage { 
     ImageView imageView; 
    } 

这是对日志猫错误显示`

>>>> 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) 

**上Hassanjan114错误秀上的主要活动**

 images_Uri.add(uri); 
+0

请分享错误的教程。根据我的理解,你应该在'onCreate()'中设置'ListView'适配器。另外,我在'Adapter'中看不到'notifyDataSetChanged()'的任何调用。 –

+0

您应该使用gradle,而不是将库放在libs文件夹中。 – heloisasim

+0

您还必须为listview制作自定义布局 –

回答

1

您可以在列表视图图像通过这种方式在您的gradel文件中添加compile 'com.github.bumptech.glide:glide:3.7.0',这里是一段代码,用于将图像视图添加到列表视图

ImageView circleImageView = (ImageView) view.findViewById(R.id.profile_image); 

      Mediafileinfo mediafileinfo =(Mediafileinfo)getItem(position); 


    Glide.with(getContext()).load(mediafileinfo.getAlbum_art_uri()) 
      .thumbnail(1f) 
      .crossFade() 
      .override(50,50) //(the size of the image) 
      .placeholder(R.drawable.music) 
      .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
      .into(circleImageView); 

下面是制作一个自定义列表视图link