一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android

 ada_lib 2015-05-03

實(shí)例:RGB2Grey

項目運(yùn)行效果圖:       

         \

 

 

源代碼

[java] 
public class MainActivity extends Activity { 

    /* (non-Javadoc)
     * @see android.app.Activity#onCreate(android.os.Bundle)
     */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        //通過Id來獲取界面中組件的引用  
        Button rgb2greyBtn  = (Button) findViewById(R.id.rgb2greybtn); 
        ImageView imageView1 = (ImageView) findViewById(R.id.imageView1); 
        final ImageView imageView2 = (ImageView) findViewById(R.id.imageView2);  
        //通過位圖工廠,創(chuàng)建一個位圖  
        final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_android); 
        imageView1.setImageBitmap(bitmap); 
        //為“轉(zhuǎn)換為灰度圖”按鈕添加監(jiān)聽事件  
        rgb2greyBtn.setOnClickListener(new OnClickListener() { 

            @Override 
            public void onClick(View v) { 
                // TODO Auto-generated method stub  
                //將轉(zhuǎn)換過后的灰度圖顯示出來  
                imageView2.setImageBitmap(convertGreyImg(bitmap)); 
            } 
        }); 

    } 

    /**
     * 將彩色圖轉(zhuǎn)換為灰度圖
     * @param img 位圖
     * @return  返回轉(zhuǎn)換好的位圖
     */ 
    public Bitmap convertGreyImg(Bitmap img) { 
        int width = img.getWidth();         //獲取位圖的寬  
        int height = img.getHeight();       //獲取位圖的高  

        int []pixels = new int[width * height]; //通過位圖的大小創(chuàng)建像素點(diǎn)數(shù)組  

        img.getPixels(pixels, 0, width, 0, 0, width, height); 
        int alpha = 0xFF << 24;  
        for(int i = 0; i < height; i++)  { 
            for(int j = 0; j < width; j++) { 
                int grey = pixels[width * i + j]; 

                int red = ((grey  & 0x00FF0000 ) >> 16); 
                int green = ((grey & 0x0000FF00) >> 8); 
                int blue = (grey & 0x000000FF); 

                grey = (int)((float) red * 0.3 + (float)green * 0.59 + (float)blue * 0.11); 
                grey = alpha | (grey << 16) | (grey << 8) | grey; 
                pixels[width * i + j] = grey; 
            } 
        } 
        Bitmap result = Bitmap.createBitmap(width, height, Config.RGB_565); 
        result.setPixels(pixels, 0, width, 0, 0, width, height); 
        return result; 
    } 

public class MainActivity extends Activity {

    /* (non-Javadoc)
     * @see android.app.Activity#onCreate(android.os.Bundle)
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //通過Id來獲取界面中組件的引用
        Button rgb2greyBtn  = (Button) findViewById(R.id.rgb2greybtn);
        ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
        final ImageView imageView2 = (ImageView) findViewById(R.id.imageView2);
        //通過位圖工廠,創(chuàng)建一個位圖
        final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_android);
        imageView1.setImageBitmap(bitmap);
        //為“轉(zhuǎn)換為灰度圖”按鈕添加監(jiān)聽事件
        rgb2greyBtn.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    //將轉(zhuǎn)換過后的灰度圖顯示出來
    imageView2.setImageBitmap(convertGreyImg(bitmap));
   }
  });

    }

    /**
     * 將彩色圖轉(zhuǎn)換為灰度圖
     * @param img 位圖
     * @return 返回轉(zhuǎn)換好的位圖
     */
    public Bitmap convertGreyImg(Bitmap img) {
     int width = img.getWidth();   //獲取位圖的寬
     int height = img.getHeight();  //獲取位圖的高

     int []pixels = new int[width * height]; //通過位圖的大小創(chuàng)建像素點(diǎn)數(shù)組

     img.getPixels(pixels, 0, width, 0, 0, width, height);
     int alpha = 0xFF << 24;
     for(int i = 0; i < height; i++) {
      for(int j = 0; j < width; j++) {
       int grey = pixels[width * i + j];

       int red = ((grey  & 0x00FF0000 ) >> 16);
       int green = ((grey & 0x0000FF00) >> 8);
       int blue = (grey & 0x000000FF);

       grey = (int)((float) red * 0.3 + (float)green * 0.59 + (float)blue * 0.11);
       grey = alpha | (grey << 16) | (grey << 8) | grey;
       pixels[width * i + j] = grey;
      }
     }
     Bitmap result = Bitmap.createBitmap(width, height, Config.RGB_565);
     result.setPixels(pixels, 0, width, 0, 0, width, height);
     return result;
    }
}
 

布局文件:

[html] 
<LinearLayout xmlns:android="http://schemas./apk/res/android" 
    xmlns:tools="http://schemas./tools" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
    <ImageView  
        android:id="@+id/imageView1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        /> 
    <Button  
        android:id="@+id/rgb2greybtn" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/rgb2greybtn" 
        android:layout_gravity="center_horizontal"/> 
    <ImageView  
        android:id="@+id/imageView2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        />" 
</LinearLayout> 

<LinearLayout xmlns:android="http://schemas./apk/res/android"
    xmlns:tools="http://schemas./tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 <ImageView
     android:id="@+id/imageView1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="center_horizontal"
     />
 <Button
     android:id="@+id/rgb2greybtn"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/rgb2greybtn"
     android:layout_gravity="center_horizontal"/>
 <ImageView
     android:id="@+id/imageView2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="center_horizontal"
     />"
</LinearLayout>

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩欧美国产三级在线观看| 亚洲日本韩国一区二区三区| 色一欲一性一乱—区二区三区| 国产精品欧美一区二区三区| 国产精品内射视频免费| 国产精品不卡一区二区三区四区 | 一本久道久久综合中文字幕| 日本一本不卡免费视频| 国产精品亚洲二区三区| 国产精品免费视频久久| 熟女乱一区二区三区四区| 亚洲一区二区亚洲日本| 日本精品免费在线观看| 免费黄片视频美女一区| 人妻熟女中文字幕在线| 国产内射在线激情一区| 日韩高清一区二区三区四区| 人妻熟女欲求不满一区二区| 欧美视频在线观看一区| 日本黄色美女日本黄色| 精品一区二区三区三级视频| 天海翼高清二区三区在线| 日本一级特黄大片国产| 日本不卡在线一区二区三区| 色丁香一区二区黑人巨大| 国产精品第一香蕉视频| 中国一区二区三区人妻| 五月天婷亚洲天婷综合网| 狠狠亚洲丁香综合久久| 国产对白老熟女正在播放| 亚洲一区二区精品免费视频| 欧美日韩一级aa大片| 日本和亚洲的香蕉视频| 午夜精品久久久免费视频| 精品一区二区三区乱码中文| 欧美日韩一区二区午夜| 日韩免费午夜福利视频| 亚洲中文字幕人妻av| 99久久精品国产麻豆| 九七人妻一区二区三区| 国产一区二区不卡在线播放|