0

저는 New android입니다. 나는 Documents Scanner 응용 프로그램을 만들고 싶습니다. 그래서 자르기 기능을 사용하여 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); 
} 
} 

인 나에게 여기

을 몇 가지 간단한 솔루션을 제공주십시오 libs와 폴더에 넣어 내 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; 
} 
} 

ViewHolderImage 클래스 코드는

입니다.
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

라이브러리를 libs 폴더에 넣는 대신에 gradle을 사용해야합니다. – 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