/*翻轉圖片、創建倒過來的圖像、將圖像畫到畫布上*/
finalint reflectionGap = 4;
int width = originalImage.getWidth();
int height = originalImage.getHeight();
Matrix matrix = new Matrix();
matrix.preScale(1, -1);
Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0,
height / 2, width, height / 2, matrix, false);
Bitmap bitmapWithReflection = Bitmap.createBitmap(width,
(height + height / 3), Config.ARGB_8888);
// 創建畫布
Canvas canvas = new Canvas(bitmapWithReflection);
canvas.drawBitmap(originalImage, 0, 0, null);
canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);
Paint paint = new Paint();
LinearGradient shader = new LinearGradient(0,
originalImage.getHeight(), 0, bitmapWithReflection.getHeight()
+ reflectionGap, 0x70ffffff, 0x00ffffff,
TileMode.MIRROR);paint.setShader(shader);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint);return bitmapWithReflection;
2.2.5 應用管理頁麵的分頁、應用的移動和卸載的實現
(1)應用管理頁麵的分頁的實現
應用管理頁麵的分頁將主要采用ViewPager+GridView實現。利用gridview將應用顯示到頁麵上,利用ViewPager實現對應用的分頁以及滑動效果。
(2)應用的移動和卸載的實現
應用管理頁麵長按某一Item,會彈出popupwindow。此時,如果選擇移動(點取消則退回應用界麵),就記錄應用的起始位置positionA,移動到positionB,記錄positionB的位置,在List中交換二者的位置,然後更新gridview的Adapter,完成整個移動過程。如果選擇卸載,程序會彈出一個確認框,選擇確認卸載(點取消則退回應用界麵),程序就獲取該應用的packgName,激活係統卸載intent,然後在List中刪除該應用,接著更新gridview的Adapter,完成卸載。
3 結 語
安卓用戶界麵設計使用的方法是使用XML來描述UI,使用XML來描述的好處是將用戶和程序邏輯分開,可以做到用戶界麵的改變不影響程序邏輯,程序邏輯的變動也可以不影響用戶界麵,實際上是采用了MVC模式的設計。Activity是MVC中的Controller,Activity的ContentView則是MVC中的View。
參考文獻
[1]文璨.Android平台網絡電視機的桌麵係統與功能模塊的設計與實現[D].成都:電子科技大學,2012.
[2]楊豐盛.Android應用開發揭秘[M].北京:機械工業出版社,2010.
[3]李剛.瘋狂Android講義[M].北京:電子工業出版社,2011.
[4]張領,李根福,王敬傑.Android程序開發範例寶典[M].北京:人民郵電出版社, 2015.
[5]張榮.Android開發與應用[M].北京:人民郵電出版社,2014.