Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 一個Activity掌握Android4.0新控件

一個Activity掌握Android4.0新控件

編輯:關於Android編程

一個Activity掌握Android4.0新控件


谷歌在推出Android4.0的同時推出了一些新控件,Android4.0中最常用的新控件有下面5種。

\

1. Switch的使用


Switch顧名思義,就是開關的意思,有開和關兩種狀態。

當Switch處於關閉狀態時:
\
當Switch處於打開狀態時:

怎麼在定義xml中定義Switch


     
android:textOff屬性表示Switch關閉時顯示的文本 android:textOn屬性表示Switch打開時顯示的文本

怎麼監聽Switch的關閉,打開這兩個狀態的變化


    mSwitch= (Switch) findViewById(R.id._switch);
    mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked){
                Log.i("Switch","打開Switch");
            }else{
                Log.i("Switch","關閉Switch");
            }
        }
    });

2. Space的使用


Space顧名思義是空間的意思,表示該控件占據一定的空間,但是卻不顯示任何東西。

怎麼使用Space


      

3. GridLayout的使用


GridLayout是指網格布局,GridLayout是為了彌補TableLayout的一些不足而推出來的。
- TableLayout不能同時在水平和垂直兩個方向上對齊,因為TableLayout繼承LinearLayout。
- TableLayout中的元素不能跨行或者跨列,因為TableLayout不能明確指出占多少行和多少列。

GridLayout中元素常用的屬性

android:layout_row : 固定顯示在第幾行。 android:layout_column : 固定顯示在第幾列 android:layout_rowSpan : 跨幾行 android:layout_columnSpan: 跨幾列

怎麼使用GridLayout

 

4. PopupMenu的使用


PopupMenu顧名思義是彈出菜單,它可以在一個控件的下面顯示彈出菜單。

在xml中定義彈出菜單

在menu資源目錄下面新建一個菜單的xml文件



	     

怎麼顯示PopupMenu

public void openPopupMenu(View view){
    //popupMenu顯示在view下面
    PopupMenu popupMenu=new PopupMenu(this,view);
    //從xml文件中加載菜單到popupMenu中
    popupMenu.inflate(R.menu.popup_menu);
    //顯示  popupMenu
    popupMenu.show();
}

5. TextureView的使用


TextureView是SurfaceView的補充,它不像SurfaceView一樣創建特殊的窗口,它創建一個常規的View,TextureView可以設置移動,旋轉,動畫等。
一個Textureview可以用來顯示內容流。這樣的內容流可以是視頻或OpenGL場景。內容流可以來自於應用程序的進程以及遠程進程。Textureview只能用於硬件加速的窗口。當渲染軟件,Textureview什麼都不會畫。

怎麼使用TextureView

使用Textureview很簡單:你需要做的就是得到它的SurfaceTexture。然後,SurfaceTexture可用於呈現內容。
下面的示例演示如何渲染相機預覽到Textureview:
因為使用了相機,所以要在添加AndroidManifest.xml 文件中添加對應的權限

public class MainActivity extends AppCompatActivity implements TextureView.SurfaceTextureListener{
    private TextureView mTexture;
    private Camera mCamera;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTexture= (TextureView) findViewById(R.id.texture_view);
        //為mTexture設置表面結構監聽器
        mTexture.setSurfaceTextureListener(this);

    }

    /**
     * TextureView的SurfaceTexture准備開始用
     */
    @Override
    public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
        mCamera = Camera.open();
        try {
            //設置mCamera的表面結構為surface
            mCamera.setPreviewTexture(surface);
            //啟動相機預覽
            mCamera.startPreview();
            //設置mTexture透明度
            mTexture.setAlpha(1.0f);
            //設置mTexture旋轉角度
            mTexture.setRotation(90.0f);
        } catch (IOException ioe) {
            // Something bad happened
        }

    }

    /**
     * SurfaceTexture的緩存大小改變了
     */
    @Override
    public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {

    }

    /**
     * SurfaceTexture銷毀了
     */
    @Override
    public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
        mCamera.stopPreview();
        mCamera.release();
        return true;
    }

    /**
     * SurfaceTexture更新了
     */
    @Override
    public void onSurfaceTextureUpdated(SurfaceTexture surface) {

    }
}

xml文件中TextureView是這樣定義的

    
    

注意:TextureView設置旋轉90度才是我們的正常視角。

6. 一個Activity掌握Android4.0新控件


為了方便學習,本人將這5個新控件放到一個Activity中進行使用。

程序原始界面講解
\ 打開Switch開關,點擊“打開POPUPMENU”彈出PopupMenu
下面分別是TextureView旋轉0度(即不旋轉),旋轉45度,旋轉90度三種情況講解


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved