1

たくさん検索した後、最後の希望としてこのスレッドを投稿します。

私は2つの画像を上下に配置し、その上にシークバーを配置しました。下の画像がトリミングされたスペースのみを表示できるように、上の画像をトリミングしたいと考えています。進行状況は、シークバーのつまみで管理されます。

ここに画像の説明を入力これは私のビューがどのように見えるかです。

ここに画像の説明を入力シークバーを移動すると、画像は右側でトリミングされますが、画像は左側でトリミングされます。

my class file

     skbr = (SeekBar)findViewById(R.id.seekbar);
    skbr.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
    {

        @Override
        public void onStopTrackingTouch(SeekBar arg0) 
        {
            Bitmap img = getcroppedimg(arg0.getProgress());
            img2.setImageBitmap(img);
            img2.getLayoutParams().width = img.getWidth();
        }

        @Override
        public void onStartTrackingTouch(SeekBar arg0) 
        {
            Bitmap img = getcroppedimg(arg0.getProgress());
            img2.setImageBitmap(img);
            img2.getLayoutParams().width = img.getWidth();
        }

        @Override
        public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) 
        {
            Bitmap img = getcroppedimg(arg0.getProgress());
            img2.setImageBitmap(img);
            img2.getLayoutParams().width = img.getWidth();
        }
    });

    public Bitmap getcroppedimg(double y)
    {
        Log.e(" progress ", ""+y);
        int x = (int)Math.round(( y / 100)*600); 
        Bitmap originalImg1 = BitmapFactory.decodeResource(getResources(), R.drawable.neutral_left_without);
        Bitmap originalImg = BitmapFactory.decodeResource(getResources(), R.drawable.neutral_left_without);

        Bitmap cropimg ;
        if((originalImg.getWidth()-x)>0)
            cropimg = Bitmap.createBitmap(originalImg, 0, 0, originalImg.getWidth()-x, originalImg.getHeight());
        else if((originalImg.getWidth()+x)<= originalImg1.getWidth())
            cropimg = Bitmap.createBitmap(originalImg, 0, 0, originalImg.getWidth()+x, originalImg.getHeight());
        else
            cropimg = Bitmap.createBitmap(originalImg, 0, 0, originalImg.getWidth(), originalImg.getHeight());
        return cropimg ;
    }

どこが間違っているのか、またはこれに代わるものがあるか教えてください。関連する回答は大歓迎です。

4

0 に答える 0