android 机顶盒 系统开发入门,读《Android电视机(机顶盒)初次开发的一些经验分享》后的笔记...
原文: http://blog.csdn.net/tanghongchang123/article/details/52982818
一、基本命令:
1、adb connect [ip]
2、?adb disconnect [ip]
3、adb uninstall [package]
4、.adb shell input text ****:用來輸入文字的,在調(diào)試程序的時候,很多情況下要鍵入文字,手機輸入方便,電視上,用遙控器按鍵盤非常麻煩的,可以用這個命令。
二、??焦點控制
1、控制控件是否可獲得焦點
android:focusable="true/false"當(dāng)這個屬性置為true時,表示當(dāng)前控件可以獲得焦點,否則相反。也可以在程序中通過代碼來設(shè)置:
v.setFocusable(true/false);
2、控制按遙控器上下左右時下一個獲得焦點的控件
android:nextFocusUp="@+id/..."
android:nextFocusDown="@+id/..."
android:nextFocusLeft="@+id/..."
android:nextFocusRight="@+id/..."
以下是通過程序設(shè)置
v.setNextFocusUp(id);
v.setNextFocusDown(id);
v.setNextFocusRight(id);
v.setNextFocusRight(id);
3、TV分辨率的適配問題
如果適配不對,容易出現(xiàn)OOM(out of memory)問題。按現(xiàn)有TV情況,一般建議設(shè)置
drawable-sw1080dp
drawable-sw720dp
相應(yīng)地,提供對應(yīng)分辨率下的尺寸:
values-sw1080dp
values-sw720dp
比如同樣的都是1080P,有的是32寸,有的是42寸。尺寸小,dpi高,使得圖片會被壓縮。在values文件里,可以使用dp、PIX,默認dpi是160。也可以考慮values采用PX驗證一下。
4、陰影、倒影的程序?qū)崿F(xiàn)(完全可以由美工實現(xiàn),這里代碼只作參考)
倒影原理:基本上就是將原圖倒置,畫在畫布上,然后加上一個半透明的蒙版。
陰影效果:網(wǎng)上有很多講陰影實現(xiàn)的教程,而這里實現(xiàn)的是在一個圓角矩形的圖片四周加上陰影效果。實現(xiàn)辦法是在原圖四邊加上矩形的陰影,然后在四個圓角的地方畫扇形陰影來實現(xiàn)。
/**
*?@author:?sunnybaby
*?@Title:?createShadowBitmap
*?@Description:?生成帶陰影圖片
*?@param?orignalBitmap:原圖
*?@param?shadowMargin:陰影邊寬
*?@param?iconCornerRadius:原圖圓角半徑
*?@return?:生成的帶陰影圖片
*/
public?static?Bitmap?createShadowBitmap(Bitmap?orignalBitmap,
int?shadowMargin,?int?iconCornerRadius)?{
int?w?=?orignalBitmap.getWidth();
int?h?=?orignalBitmap.getHeight();
Bitmap?shadowBitmap?=?Bitmap.createBitmap(w?+?shadowMargin?*?2,?h
+?shadowMargin?*?2,?Config.ARGB_8888);
int?width?=?shadowBitmap.getWidth();
int?height?=?shadowBitmap.getHeight();
Canvas?canvas?=?new?Canvas(shadowBitmap);
canvas.drawBitmap(orignalBitmap,?shadowMargin,?shadowMargin,?null);
Paint?paint?=?new?Paint();
paint.setXfermode(new?PorterDuffXfermode(Mode.DST_OVER));
int?radius?=?shadowMargin?+?iconCornerRadius;
//?四個邊的陰影效果,采用線性陰影,寬度等于陰影邊距+圓角半徑
LinearGradient?leftGradient?=?new?LinearGradient(radius,?0,?0,?0,
0x7F000000,?0x00000000,?TileMode.CLAMP);
LinearGradient?rightGradient?=?new?LinearGradient(width?-?radius,?0,
width,?0,?0x7F000000,?0x00000000,?TileMode.CLAMP);
LinearGradient?topGradient?=?new?LinearGradient(0,?radius,?0,?0,
0x7F000000,?0x00000000,?TileMode.CLAMP);
LinearGradient?bottomGradient?=?new?LinearGradient(0,?height?-?radius,
0,?height,?0x7F000000,?0x00000000,?TileMode.CLAMP);
paint.setShader(leftGradient);
canvas.drawRect(0,?radius,?radius,?height?-?radius,?paint);
paint.setShader(rightGradient);
canvas.drawRect(width?-?radius,?radius,?width,?height?-?radius,?paint);
paint.setShader(topGradient);
canvas.drawRect(radius,?0,?width?-?radius,?radius,?paint);
paint.setShader(bottomGradient);
canvas.drawRect(radius,?height?-?radius,?width?-?radius,?height,?paint);
//?四個角的陰影效果,采用圓形陰影,半徑等于陰影邊距+圓角半徑
RadialGradient?topLeftCornerGradient?=?new?RadialGradient(radius,
radius,?radius,?0x7F000000,?0x00000000,?TileMode.CLAMP);
RadialGradient?topRightCornerGradient?=?new?RadialGradient(width
-?radius,?radius,?radius,?0x7F000000,?0x00000000,
TileMode.CLAMP);
RadialGradient?bottomLeftCornerGradient?=?new?RadialGradient(radius,
height?-?radius,?radius,?0x7F000000,?0x00000000,?TileMode.CLAMP);
RadialGradient?bottomRightCornerGradient?=?new?RadialGradient(width
-?radius,?height?-?radius,?radius,?0x7F000000,?0x00000000,
TileMode.CLAMP);
//?畫四個角,就是畫四個圓心角為90度的扇形,drawArc函數(shù)第一個參數(shù)為圓弧所在圓的的外接矩形,第二個參數(shù)為起始角度,第三個參數(shù)為扇形順時針滑過的角度,第四個參數(shù)如果為true時,在繪制圓弧時將圓心包括在內(nèi)(用來畫扇形),第五個參數(shù)為畫筆
paint.setShader(topLeftCornerGradient);
canvas.drawArc(new?RectF(0,?0,?radius?*?2,?radius?*?2),?180,?90,?true,
paint);
paint.setShader(topRightCornerGradient);
canvas.drawArc(new?RectF(width?-?radius?*?2,?0,?width,?radius?*?2),
270,?90,?true,?paint);
paint.setShader(bottomLeftCornerGradient);
canvas.drawArc(new?RectF(0,?height?-?radius?*?2,?radius?*?2,?height),
90,?90,?true,?paint);
paint.setShader(bottomRightCornerGradient);
canvas.drawArc(new?RectF(width?-?radius?*?2,?height?-?radius?*?2,
width,?height),?0,?90,?true,?paint);
return?shadowBitmap;
}
總結(jié)
以上是生活随笔為你收集整理的android 机顶盒 系统开发入门,读《Android电视机(机顶盒)初次开发的一些经验分享》后的笔记...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android悬浮窗代码布局,三行代码实
- 下一篇: Android 电视 文件目录,通用的安