2016-11-23 1 views

Répondre

3

Faire un EditText personnalisé comme celui-ci

public class GifEditText extends EditText { 
    public GifEditText(Context context) { 
     super(context); 
    } 

    public GifEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public GifEditText(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    public InputConnection onCreateInputConnection(EditorInfo editorInfo) { 
     final InputConnection ic = super.onCreateInputConnection(editorInfo); 
     EditorInfoCompat.setContentMimeTypes(editorInfo, 
       new String[]{"image/gif"}); 

     final InputConnectionCompat.OnCommitContentListener callback = 
       new InputConnectionCompat.OnCommitContentListener() { 
        @Override 
        public boolean onCommitContent(InputContentInfoCompat inputContentInfo, 
                int flags, Bundle opts) { 
         // read and display inputContentInfo asynchronously 
         if (BuildCompat.isAtLeastNMR1() && (flags & 
           InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION) != 0) { 
          try { 
           inputContentInfo.requestPermission(); 
          } catch (Exception e) { 
           return false; // return false if failed 
          } 
         } 

         // read and display inputContentInfo asynchronously. 
         // call inputContentInfo.releasePermission() as needed. 

         return true; // return true if succeeded 
        } 
       }; 
     return InputConnectionCompat.createWrapper(ic, editorInfo, callback); 
    } 
} 

Et utiliser comme ça

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <com.test.GifEditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Test gif" /> 
</LinearLayout> 
+0

désolé mais je ne peux pas résoudre EditorInfoCompat, InputConnectionCompat et BuildCompat. Comment faire ça? –

+2

ajoutez compile 'com.android.support:support-v13:25.0.0' pour résoudre EditorInfoCompat –