如何实现搜索栏来改变对比度

时间:2015-05-15 08:55:45

标签: android imageview android-imageview android-seekbar

我正在尝试实现一个搜索栏来改变android中图像的对比度。任何人都帮我实现这个。图像处理还有其他选择吗? 有谁知道解决方案请帮帮我

先谢谢。

CODE:

    public class MainActivity extends ActionBarActivity {
    ImageView imViewAndroid;
    private SeekBar seekbar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        seekbar = (SeekBar) findViewById(R.id.seekbar);
        imViewAndroid = (ImageView) findViewById(R.id.imViewAndroid);


        seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                imViewAndroid.setImageBitmap(takeContrast(BitmapFactory.decodeResource(getResources(), R.drawable.dicom), 100));
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

    }
  public  Bitmap takeContrast(Bitmap src, double value) {
        // src image size
        int width = src.getWidth();
        int height = src.getHeight();
        // create output bitmap with original size
        Bitmap bmOut = Bitmap.createBitmap(width, height, src.getConfig());
        // color information
        int A, R, G, B;
        int pixel;
        // get contrast value
        double contrast = Math.pow((100 + value) / 100, 2);

        // scan through all pixels
        for(int x = 0; x < width; ++x) {
            for(int y = 0; y < height; ++y) {
                // get pixel color
                pixel = src.getPixel(x, y);
                A = Color.alpha(pixel);
                // apply filter contrast for every channel R, G, B
                R = Color.red(pixel);
                R = (int)(((((R / 255.0) - 0.5) * contrast) + 0.5) * 255.0);
                if(R < 0) { R = 0; }
                else if(R > 255) { R = 255; }

                G = Color.red(pixel);
                G = (int)(((((G / 255.0) - 0.5) * contrast) + 0.5) * 255.0);
                if(G < 0) { G = 0; }
                else if(G > 255) { G = 255; }

                B = Color.red(pixel);
                B = (int)(((((B / 255.0) - 0.5) * contrast) + 0.5) * 255.0);
                if(B < 0) { B = 0; }
                else if(B > 255) { B = 255; }

                // set new pixel color to output bitmap
                bmOut.setPixel(x, y, Color.argb(A, R, G, B));
            }
        }

        // return final image
        return bmOut;
    }

2 个答案:

答案 0 :(得分:1)

  1. 您调用该函数可以在错误的位置更改对比度

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
        // call the method here, default progress is <0, 100>
    }
    
  2. 使用非常慢的功能来改变对比度。 StackOverflow上已有很多答案,请查看this answer在您提出要求之前进行搜索。

  3. 在我的github上查看此完整实施。

答案 1 :(得分:0)

以上代码处理图像需要太多时间。如果你使用我的代码处理图像需要很少的时间。

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Date of Activity*  "
        android:textColor="#000000"
        android:textSize="20sp"
        android:paddingRight="50dp"
        android:id="@+id/dateofactivity"/>
    <EditText
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="50dp"
        android:layout_width="280dp"
        android:height="100dp"
        android:textColor="#000000"
        android:id="@+id/activitydateswati"
        android:layout_toRightOf="@+id/dateofactivity"
        android:layout_alignBottom="@+id/dateofactivity"
        android:layout_alignParentEnd="false"
        android:layout_alignParentStart="false"
        android:visibility="visible"
        android:inputType="date"
        tools:ignore="RtlCompat"/>
        <!--android:background="@drawable/edittextstyle"-->

    <ImageView android:layout_height="40dp"
        android:layout_width="35dp"
        android:src="@drawable/calendar1"
        android:id="@+id/calimg"
        android:clickable="true"
        android:onClick="popupimage"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/activitydateswati"
        android:layout_toEndOf="@+id/activitydateswati" />


    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Duration*  "
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_below="@+id/calimg"
        android:layout_alignLeft="@+id/dateofactivity"
        android:layout_alignStart="@+id/dateofactivity"
        android:id="@+id/duration"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Frm"
        android:textColor="#000000"
        android:textSize="20sp"
        android:id="@+id/textView2"
        android:layout_alignTop="@+id/duration"
        android:layout_toRightOf="@+id/dateofactivity"
        android:layout_toEndOf="@+id/dateofactivity" />

    <Spinner
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:id="@+id/fromhour"
        android:background="@drawable/edittextstyle"
        android:layout_toRightOf="@+id/textView2"
        android:layout_toEndOf="@+id/textView2"
        android:layout_alignBottom="@+id/textfromhrs"
        android:layout_below="@+id/calimg" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hrs"
        android:id="@+id/textfromhrs"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_alignTop="@+id/textView2"
        android:layout_toRightOf="@+id/fromhour"
        android:layout_toEndOf="@+id/fromhour" />

    <Spinner
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:id="@+id/from_minutes"
        android:background="@drawable/edittextstyle"
        android:layout_toEndOf="@+id/textfromhrs"
        android:layout_alignBottom="@+id/textfromhrs"
        android:layout_alignTop="@+id/textfromhrs"
        tools:ignore="RtlCompat" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="mins"
        android:textColor="#000000"
        android:textSize="20sp"
        android:id="@+id/textfrommins"
        android:layout_above="@+id/textView4"
        android:layout_toRightOf="@+id/from_minutes"
        android:layout_toEndOf="@+id/from_minutes"
        android:layout_marginLeft="31dp"
        android:layout_marginStart="31dp" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:gravity="left"
        android:text="To"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_below="@+id/textView2"
        android:layout_alignRight="@+id/textView2"
        android:layout_alignEnd="@+id/textView2"
        android:layout_marginTop="27dp"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignStart="@+id/textView2"
        android:id="@+id/textView4" />
    <Spinner
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:id="@+id/tohour"
        android:background="@drawable/edittextstyle"
        android:layout_alignTop="@+id/textView4"
        android:layout_toLeftOf="@+id/textfromhrs"
        android:layout_toStartOf="@+id/textfromhrs"
        android:layout_alignBottom="@+id/textView4" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="hrs"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_alignTop="@+id/tohour"
        android:layout_alignLeft="@+id/textfromhrs"
        android:layout_alignStart="@+id/textfromhrs"
        android:id="@+id/textView5" />

    <Spinner
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:id="@+id/tominutes"
        android:background="@drawable/edittextstyle"
        android:layout_alignTop="@+id/textView5"
        android:layout_alignLeft="@+id/from_minutes"
        android:layout_alignStart="@+id/from_minutes"
        android:layout_alignBottom="@+id/textView5" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="mins"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_alignTop="@+id/tominutes"
        android:layout_alignLeft="@+id/textfrommins"
        android:layout_alignStart="@+id/textfrommins"
        android:id="@+id/textView11" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hours Invested"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_alignTop="@+id/textView6"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/textView8" />



    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Time"
        android:textColor="#000000"
        android:textSize="20sp"
        android:id="@+id/textView6"
        android:layout_marginTop="29dp"
        android:layout_below="@+id/textView4"
        android:layout_alignLeft="@+id/textView4"
        android:layout_alignStart="@+id/textView4" />


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="No&apos;s Participated* "
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_marginTop="38dp"
        android:id="@+id/textView9"
        android:layout_below="@+id/textView8"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_height="wrap_content"
        android:layout_width="270dp"
        android:hint="Number participated"
        android:inputType="number"
        android:background="@drawable/edittextstyle"
        android:id="@+id/editText"
        android:layout_alignTop="@+id/textView9"
        android:layout_alignLeft="@+id/activitydateswati"
        android:layout_alignStart="@+id/activitydateswati"
        android:layout_alignRight="@+id/calimg"
        android:layout_alignEnd="@+id/calimg" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Region"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_alignTop="@+id/textView12"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/textView14" />


    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="SR"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_marginTop="27dp"
        android:id="@+id/textView12"
        android:layout_below="@+id/editText"
        android:layout_alignLeft="@+id/editText"
        android:layout_alignStart="@+id/editText" />

    <LinearLayout
        android:paddingTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@+id/textView14"
        android:weightSum="1"
        android:id="@+id/linearLayout5">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity Selector"
        android:id="@+id/textsas"
        android:gravity="top"
        android:textColor="#000000"
        android:textSize="20sp"
        android:layout_alignBottom="@+id/selectactivitysector"/>

    <android.support.v4.widget.Space
        android:layout_width="60dp"
        android:layout_height="wrap_content" />

    <Spinner
        android:layout_width="270dp"
        android:layout_height="53dp"
        android:id="@+id/selectactivitysector"
        android:background="@drawable/edittextstyle"
        android:layout_above="@+id/linearLayout4"
        android:layout_weight="0.57" />
    </LinearLayout>

    <LinearLayout
        android:paddingTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="1"
        android:id="@+id/linearLayout4"
        android:layout_below="@+id/linearLayout5"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true">

    <TextView
        android:layout_width="142dp"
        android:layout_height="33dp"
        android:text="Activity"
        android:id="@+id/textselectactivity"
        android:layout_gravity="top"
        android:gravity="top"
        android:textColor="#000000"
        android:textSize="20sp"/>

    <android.support.v4.widget.Space
        android:layout_width="60dp"
        android:layout_height="wrap_content" />


    <Spinner
        android:paddingLeft="0dp"
        android:layout_width="125dp"
        android:layout_height="53dp"
        android:background="@drawable/edittextstyle"
        android:id="@+id/selectactivity"
        android:layout_column="9"
        android:layout_weight="0.84" />


    </LinearLayout>


    <LinearLayout
        android:paddingTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="100"
        android:id="@+id/linearLayout2"
        android:layout_below="@+id/linearLayout4"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Brief Description"
        android:textColor="#000000"
        android:textSize="20sp"
        android:paddingTop="20dp"
        android:layout_gravity="left"
        android:id="@+id/textView15"
        android:layout_weight="30"
        android:layout_alignTop="@+id/editText2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_height="200dp"
        android:layout_width="250dp"
        android:inputType="textMultiLine"
        android:background="@drawable/edittextstyle"
        android:gravity="top"
        android:layout_weight="60.33"
        android:hint="(Provide description within 50 words)"
        android:id="@+id/editText2"
        android:layout_above="@+id/linearLayout"
        />

    <android.support.v4.widget.Space
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="10"/>

    </LinearLayout>

    <LinearLayout 
        android:paddingTop="20dp"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:weightSum="100"
        android:id="@+id/linearLayout"
        android:layout_below="@+id/camera">

        <Button android:text="Save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="25"
            android:id="@+id/save"/>

        <android.support.v4.widget.Space
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="5"/>


        <Button
            android:text="Next"
            android:layout_weight="25"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:id="@+id/next"
            android:onClick="onsaveClick" />

        <android.support.v4.widget.Space
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="5"/>


        <Button android:text="Cancel"
            android:layout_weight="25"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:id="@+id/cancel_action"/>

    </LinearLayout>

    <ImageView 
            android:layout_height="40dp"
            android:layout_width="35dp"
            android:src="@drawable/camera"
            android:id="@+id/camera"
            android:clickable="true"
            android:layout_below="@+id/linearLayout2"
            android:layout_alignLeft="@+id/textView12"
            android:layout_alignStart="@+id/textView12"
            android:onClick="oncamClick" />

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="Date"
            android:id="@+id/sonal"
            android:layout_below="@+id/linearLayout"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:visibility="visible"/>