日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 机顶盒 系统开发入门,读《Android电视机(机顶盒)初次开发的一些经验分享》后的笔记...

發(fā)布時間:2023/12/18 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 机顶盒 系统开发入门,读《Android电视机(机顶盒)初次开发的一些经验分享》后的笔记... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文: 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。