خرید بک لینک

Vote count: 0

First thanks to the great job!!!

I tried to add a signature pad, on a android application using a custom view:

    public class Firma extends View{

// defines paint and canvas
private Paint drawPaint;
private Path path = new Path();


public Firma(Context context, AttributeSet attrs) {
    super(context);
    setFocusable(true);
    setFocusableInTouchMode(true);
    setupPaint();
}

private void setupPaint() {
    // Setup paint with color and stroke styles
    drawPaint = new Paint();
    int paintColor = Color.BLACK;
    drawPaint.setColor(paintColor);
    drawPaint.setAntiAlias(true);
    drawPaint.setStrokeWidth(5);
    drawPaint.setStyle(Paint.Style.STROKE);
    drawPaint.setStrokeJoin(Paint.Join.ROUND);
    drawPaint.setStrokeCap(Paint.Cap.ROUND);
    setDrawingCacheEnabled( true );
}

@Override
protected void onDraw(Canvas canvas) {
    canvas.drawPath(path, drawPaint);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    float pointX = event.getX();
    float pointY = event.getY();
    // Checks for the event that occurs
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            path.moveTo(pointX, pointY);
            return true;
        case MotionEvent.ACTION_MOVE:
            path.lineTo(pointX, pointY);
            break;
        default:
            return false;
    }
    // Force a view to draw again
    postInvalidate();
    return true;
}

public void saveDrawing()
{
    Bitmap whatTheUserDrewBitmap = getDrawingCache();

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    whatTheUserDrewBitmap.compress(Bitmap.CompressFormat.PNG, 0, baos);
// LATER I WILL STORE IN A SQLITE BLOB
}

public void borraDrawing() {
// THIS HOPEFULLY WILL ERASE THE SIGNATURE PAD 
    setDrawingCacheEnabled(false);
    invalidate();
    setDrawingCacheEnabled(true);
}

}

I use this view with this layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/disclaimersign"
    android:id="@+id/textView2"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:paddingEnd="10dp"
    android:paddingStart="10dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="48dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="@string/signature"
    android:id="@+id/textView3"
    android:paddingEnd="20dp"
    android:paddingStart="20dp"
    android:layout_marginTop="137dp"
    android:layout_below="@+id/textView2"
    android:layout_alignParentStart="true" />

<com.eternity.josep.eternityservice.views.Firma
    android:id="@+id/firma"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/textView3"
    android:background="#e1fcf3"
    android:layout_above="@+id/email" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:labelFor="@+id/email"
    android:text="@string/contactmail"
    android:id="@+id/l_email"
    android:layout_above="@+id/signReset"
    android:layout_alignStart="@+id/signReset" />
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="textEmailAddress"
    android:ems="10"

    android:id="@+id/email"
    android:layout_above="@+id/signReset"
    android:layout_alignEnd="@+id/signSave"
    android:layout_toEndOf="@+id/signReset" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/SignReset"
    android:id="@+id/signReset"
    android:layout_alignParentBottom="true"
    android:layout_alignParentStart="true"
    android:layout_marginStart="38dp" />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/SaveSign"
    android:id="@+id/signSave"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_marginEnd="40dp" />

I tried to manage from a fragment:

public class FragmentSign extends Fragment {

View view;
Firma firma;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getActivity().setRequestedOrientation(
            ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    view = inflater.inflate(R.layout.fragment_sign, container, false);
    super.onCreate(savedInstanceState);


    return view;
}

public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

}

@Override
public void onResume() {
    super.onResume();
    Button borra = (Button) view.findViewById(R.id.signReset);
    Button guarda = (Button) view.findViewById(R.id.signSave);
   firma=new Firma(getActivity(),null);

    borra.setOnClickListener(
            new View.OnClickListener() {
                public void onClick(View view) {
                    try {
                        firma.borraDrawing();
                    }catch(Exception e )
                    {
                        Log.d("LOGTAG",e.getMessage()  );
                    }
                }
            });

    guarda.setOnClickListener(
            new View.OnClickListener() {
                public void onClick(View view) {
                    try {
                        firma.saveDrawing();
                    }catch(Exception e )
                    {
                        Log.d("LOGTAG",e.getMessage()  );
                    }
                }
            });

    }

}

My problem is that when i debug here

public void saveDrawing()

{ Bitmap whatTheUserDrewBitmap = getDrawingCache();

getDrawingCache() is null, and not the same that when I debug here

        case MotionEvent.ACTION_DOWN:
            path.moveTo(pointX, pointY);
            return true;
        case MotionEvent.ACTION_MOVE:
            path.lineTo(pointX, pointY);
            break;

Could anybody gime an idea about the reason of this?

Thanks again.

asked 24 secs ago

برچسب: signature pad online,signature pad on ipad,signature pad on iphone,test signature pad online,topaz signature pad on terminal server,test topaz signature pad online,digital signature pad buy online,onbase signature pad interface,topaz signature pad add on, نویسنده: استخدام کار تاريخ: دوشنبه 25 مرداد 1395 ساعت: 18:40

صفحه بندی