Custom Form Highlight Color
Shows how to toggle the form highlight color.
/* * Copyright © 2017-2026 PSPDFKit GmbH. All rights reserved. * * The PSPDFKit Sample applications are licensed with a modified BSD license. * Please see License for details. This notice may not be removed from this file. */
package com.pspdfkit.catalog.examples.java;
import static com.pspdfkit.catalog.tasks.ExtractAssetTask.extract;
import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.graphics.drawable.Drawable;import android.net.Uri;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import androidx.annotation.NonNull;import androidx.core.content.ContextCompat;import androidx.core.graphics.drawable.DrawableCompat;import com.pspdfkit.catalog.R;import com.pspdfkit.catalog.SdkExample;import com.pspdfkit.configuration.activity.PdfActivityConfiguration;import com.pspdfkit.ui.PdfActivity;import com.pspdfkit.ui.PdfActivityIntentBuilder;
/** Shows how to toggle the form highlight color. */public class CustomFormHighlightColorExample extends SdkExample { public CustomFormHighlightColorExample(@NonNull final Context context) { super( context, R.string.customFormHighlightColorExampleTitle, R.string.customFormHighlightColorExampleDescription); }
@Override public void launchExample( @NonNull final Context context, @NonNull final PdfActivityConfiguration.Builder configuration) { configuration // Turn off saving, so we have the clean original document every time the example is // launched. .autosaveEnabled(false) .formEditingEnabled(true) .build();
// Extract the document from the assets. extract("Form_example.pdf", getTitle(), context, documentFile -> { final Intent intent = PdfActivityIntentBuilder.fromUri(context, Uri.fromFile(documentFile)) .configuration(configuration.build()) .activityClass(CustomFormHighlightColorActivity.class) .build(); context.startActivity(intent); }); }
public static class CustomFormHighlightColorActivity extends PdfActivity {
private static final int TOGGLE_FORM_HIGHLIGHT_COLOR_MENU_ITEM_ID = 1;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }
@Override public boolean onCreateOptionsMenu(@NonNull Menu menu) { super.onCreateOptionsMenu(menu); MenuItem menuItem = menu.add(0, TOGGLE_FORM_HIGHLIGHT_COLOR_MENU_ITEM_ID, 0, "Toggle highlight color"); menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
final Drawable tintedDrawable = DrawableCompat.wrap(ContextCompat.getDrawable(this, com.pspdfkit.R.drawable.pspdf__ic_highlight)); DrawableCompat.setTint(tintedDrawable, Color.WHITE); menuItem.setIcon(tintedDrawable); return true; }
@Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (item.getItemId() == TOGGLE_FORM_HIGHLIGHT_COLOR_MENU_ITEM_ID) { toggleFormHighlightColor(); return true; } else { return super.onOptionsItemSelected(item); } }
/** * Toggles form highlight color between {@link Color#TRANSPARENT} and highlight color set in the * theme. */ private void toggleFormHighlightColor() { if (getConfiguration().getTheme() == PdfActivityConfiguration.NO_THEME) { setConfiguration(new PdfActivityConfiguration.Builder(getConfiguration()) .theme(R.style.PSPDFCatalog_Theme_FormSelectionNoHighlight) .build()); } else { setConfiguration(new PdfActivityConfiguration.Builder(getConfiguration()) .theme(PdfActivityConfiguration.NO_THEME) .build()); } } }}This code sample is an example that illustrates how to use our SDK. Please adapt it to your specific use case.