2016-07-20 17 views
1

Ich möchte Bildeditor mit nicht eingeschränktem crop tool an dem einen Punkt öffnen, und ich möchte Bildbearbeitung mit dem quadratischen Crop-Element nur an dem anderen Punkt bei der einen Anwendung öffnen.Gibt es eine Möglichkeit, verschiedene Zuschnittwerkzeugelemente auf verschiedenen Adobe Creative SDK-Bildbearbeitungsaufrufen festzulegen?

Ich kann crop Tool Elemente für eine ganze Anwendung, aber nicht für einen Anruf festlegen.

Update 1:

Ich möchte alle Werkzeuge für beide Editor Anrufe verwenden, aber ich will die Liste der Crop-Werte für den einen Aufruf begrenzen und zum anderen nicht einschränken. Ich kann die Crop-Objekte begrenzen, indem ich die Ressourcenfelder com_adobe_image_editor_crop_labels/com_adobe_image_editor_crop_values ​​überschreibe, aber diese Einschränkung gilt für beide Aufrufe.

Also, ich will für den einen Editor Aufruf, diese Einschränkung verwenden:

<string-array name="com_adobe_image_editor_crop_labels"> 
    <item>@string/feather_original</item> 
    <item>@string/feather_square</item> 
    <item>@string/feather_custom</item> 
    <item>3:2</item> 
    <item>4:3</item> 
    <item>5:3</item> 
    <item>5:4</item> 
    <item>6:4</item> 
    <item>6:5</item> 
    <item>7:5</item> 
    <item>14:11</item> 
    <item>16:9</item> 
    <item>16:10</item> 
    <item>2.35:1</item> 
</string-array> 
<string-array name="com_adobe_image_editor_crop_values"> 
    <item>-1:-1</item> 
    <item>1:1</item> 
    <item>0:0</item> 
    <item>3:2</item> 
    <item>4:3</item> 
    <item>5:3</item> 
    <item>5:4</item> 
    <item>6:4</item> 
    <item>6:5</item> 
    <item>7:5</item> 
    <item>14:11</item> 
    <item>16:9</item> 
    <item>16:10</item> 
    <item>235:100</item> 
</string-array> 

Und diese Werte für einen anderen Editor Aufruf:

<string-array name="com_adobe_image_editor_crop_labels"> 
    <item>@string/feather_square</item> 
</string-array> 
<string-array name="com_adobe_image_editor_crop_values"> 
    <item>1:1</item> 
</string-array> 

Kann ich das tun?

Antwort

0

Eine Möglichkeit, wie Sie das ausführen können, besteht darin, eine gewisse Logik in Ihrem Code einzurichten.

Im folgenden Code in onCreate(), richtete ich:

  • ein CheckBox
  • ein Button
  • ein OnClickListener für die Schaltfläche

In meiner launchImageEditor() Hilfsmethode, I Habe Logik, um zu bestimmen, ob das Kontrollkästchen aktiviert ist, dann richte ich den Image Editor entsprechend ein.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // ... 

    mCheckBox = (CheckBox) findViewById(R.id.checkBox); 
    mImageEditorButton = (Button) findViewById(R.id.imageEditorButton); 

    View.OnClickListener imageEditorButtonListener = new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      launchImageEditor(); 
     } 
    }; 
    mImageEditorButton.setOnClickListener(imageEditorButtonListener); 

} 

private void launchImageEditor() { 
    /* 1) Make a new Uri object (Replace this with a real image on your device) */ 
    Uri imageUri = Uri.parse("content://media/external/images/media/1248"); 

    /* 2) Create a new Intent */ 
    Intent imageEditorIntent; 

    if (mCheckBox.isChecked()) { 
     ToolLoaderFactory.Tools[] toolList = {ToolLoaderFactory.Tools.CROP}; 

     imageEditorIntent = new AdobeImageIntent.Builder(this) 
       .setData(imageUri) 
       .withToolList(toolList) 
       .build(); 
    } 
    else { 
     imageEditorIntent = new AdobeImageIntent.Builder(this) 
       .setData(imageUri) 
       .build(); 
    } 

    /* 3) Start the Image Editor with request code 1 */ 
    startActivityForResult(imageEditorIntent, 1); 
} 

Wenn Sie die Aktivität Ergebnisse unterschiedlich behandelt werden sollen, je nachdem, welche Version des Image Editor gestartet wurde, konnte man startActivityForResult() in die if/else Aussagen bewegen, für jeden Anforderungscode in einer anderen int vorbei.

+0

Danke für die Antwort, siehe mein Update. –

+0

Der Bildeditor bietet keine API zum Eingeben von Werkzeugwerten, und leider ist es nicht möglich, den Inhalt des Ordners "res" zur Laufzeit zu ändern. –