當前位置:首頁 » 安卓系統 » android分享屏幕

android分享屏幕

發布時間: 2022-09-14 10:30:04

Ⅰ Android有辦法支持一個屏幕同時顯示兩個程序窗口嗎

想要Android應用適應不同尺寸的屏幕,思路如下: 一:不同的layout Android手機屏幕大小不一,有480x320, 640x360, 800x480,讓app適應不同屏幕,需要在res目錄下創建不同的layout文件夾,比如layout-640x360,layout-800x480,所有的layout文件在編譯之後都會寫入R/apk/res/android" package="com.ray.linkit" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".GamePlay" android:screenOrientation="portrait"></activity> <activity android:name=".OptionView" android:screenOrientation="portrait"></activity> </application> <uses-sdk android:minSdkVersion="3" /> </manifest> 另外,android中每次屏幕的切換動會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了! 有的程序適合從豎屏切換到橫屏,或者反過來,這個時候怎麼辦呢?可以在配置Activity的地方進行如下的配置android:screenOrientation="portrait"。這樣就可以保證是豎屏總是豎屏了,或者landscape橫向。 而有的程序是適合橫豎屏切換的。如何處理呢?首先要在配置Activity的時候進行如下的配置:android:configChanges="keyboardHiddenorientation",另外需要重寫Activity的 onConfigurationChanged方法。實現方式如下,不需要做太多的內容: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { // land do nothing is ok } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { // port do nothing is ok } } 寫一個支持多分辨的程序,基於1.6開發的,建立了三個資源文件夾drawable-hdpi drawable-mdpi drawable-ldpi,裡面分別存放72*72 48*48 36*36的icon圖標文件。當我在G1(1.5的系統)上測試時,圖標應該自適應為48*48才對啊,但實際顯示的是36*36。怎麼才能讓其自適應 48*48的icon圖標呢 解決辦法 drawable-hdpi drawable-mdpi drawable-ldpi改成drawable-480X320 drawable-800X480的多分辨支持的文件夾

Ⅱ android 操作屏幕需要什麼許可權

一般最開始的 Android 截屏程序,都是來源於 linux 的截屏方法,android 使用的 Linux 內核,那麼 Linux 下的截屏方法也就最先被 android 採用。Linux 使用了 framebuffer 管理顯示輸出,傳統的辦法就是讀取 framebuffer 的數據,然後得到整個屏幕的數據。此方法在 Android3.0 版本之前是也唯一可行的方法。 然而 linux 採用了嚴格的許可權控制 設備文件,framebuffer 也是其控制之一,在 Android 中只有 root , 和 graphic 組用戶才有許可權讀取:

ls -l /dev/graphics/fb0
crw-rw---- root graphics 29, 0 2015-01-16 03:26 fb0

所以要採用讀取 framebuffer 的方式實現截屏,應用必須獲得 root 許可權。

隨著 Android 顯示系統的變遷,自 Android 4.2 開始, Android 自己增加截屏介面,而且更多的設備採用了多個 framebuffer 使用 overlay 的方式,更有採用硬體 composer 的設備,使得單獨讀取 framebuffer 並不能截取到,一個完整的屏幕。於是這個方法也漸漸被開發者拋棄。

Android 截屏 -- SurfaceFlinger
在 Android 4.0 里,顯示系統採用了新的構架,加入「黃油計劃」,同時也添加截屏介面:

status_t SurfaceFlinger::captureScreen(const sp<IBinder>& display,
sp<IMemoryHeap>* heap,
uint32_t* width, uint32_t* height, PixelFormat* format,
uint32_t sw, uint32_t sh,
uint32_t minLayerZ, uint32_t maxLayerZ)
{
if (CC_UNLIKELY(display == 0))
return BAD_VALUE;

if (!GLExtensions::getInstance().haveFramebufferObject())
return INVALID_OPERATION;

class MessageCaptureScreen : public MessageBase {
SurfaceFlinger* flinger;
sp<IBinder> display;
sp<IMemoryHeap>* heap;
uint32_t* w;
uint32_t* h;
PixelFormat* f;
uint32_t sw;
uint32_t sh;
uint32_t minLayerZ;
uint32_t maxLayerZ;
status_t result;
public:
MessageCaptureScreen(SurfaceFlinger* flinger, const sp<IBinder>& display,
sp<IMemoryHeap>* heap, uint32_t* w, uint32_t* h, PixelFormat* f,
uint32_t sw, uint32_t sh,
uint32_t minLayerZ, uint32_t maxLayerZ)
: flinger(flinger), display(display),
heap(heap), w(w), h(h), f(f), sw(sw), sh(sh),
minLayerZ(minLayerZ), maxLayerZ(maxLayerZ),
result(PERMISSION_DENIED)
{
}
status_t getResult() const {
return result;
}
virtual bool handler() {
Mutex::Autolock _l(flinger->mStateLock);
result = flinger->captureScreenImplLocked(display,
heap, w, h, f, sw, sh, minLayerZ, maxLayerZ);
return true;
}
};

sp<MessageBase> msg = new MessageCaptureScreen(this,
display, heap, width, height, format, sw, sh, minLayerZ, maxLayerZ);
status_t res = postMessageSync(msg);
if (res == NO_ERROR) {
res = static_cast<MessageCaptureScreen*>( msg.get() )->getResult();
}
return res;
}

現在應用可以調用系統介面來截屏,最好的例子就是 screencap : frameworks/base/cmds/screencap/screencap.cpp

然而,系統依然出於安全的考慮,對許可權的控制依然嚴格:使用系統截屏介面需要 READ_FRAMEBUFFER 許可權:

case CAPTURE_SCREEN:
{
// codes that require permission check
IPCThreadState* ipc = IPCThreadState::self();
const int pid = ipc->getCallingPid();
const int uid = ipc->getCallingUid();
if ((uid != AID_GRAPHICS) &&
!PermissionCache::checkPermission(sReadFramebuffer, pid, uid)) {
ALOGE("Permission Denial: "
"can't read framebuffer pid=%d, uid=%d", pid, uid);
return PERMISSION_DENIED;
}
break;
}

而且 READ_FRAMEBUFFER 屬於 system 級別的許可權,非系統應用無法獲得,所以在應用程序中聲明了使用這個許可權,應用程序如果不是 system 程序,依然沒有許可權。第三方程序要能截屏成功還是需要 root 。

Ⅲ android 手機屏幕如何共享到電腦上

首先下載「Andriod Screen Capture」,下載完後就安裝該程序。

Ⅳ 如何實現給android系統發送一些鍵盤事件和屏幕事件

可能通過命令行 input 命令向android發送事件。
Android中,模擬事件全部是通過input命令來實現的。
input命令的使用:
usage: input ...
input text <string>
input keyevent <key code number or name>
input tap <x> <y>
input swipe <x1> <y1> <x2> <y2>

1. keyevent指的是android對應的keycode,比如home鍵的keycode=3,back鍵的keycode=4.
具體請查閱 <android keycode詳>
然後使用的話比較簡單,比如想模擬home按鍵:
adb shell input keyevent 3根據具體keycode編輯即可。

2. 關於tap的話,他模擬的是touch屏幕的事件,只需給出x、y坐標即可。
此x、y坐標對應的是真實的屏幕解析度,所以要根據具體手機具體看,比如想點擊屏幕(x, y) = (250, 250)位置:
adb shell input tap 250 250

3. 關於swipe同tap是一樣的,只是他是模擬滑動的事件,給出起點和終點的坐標即可。例如從屏幕(250, 250), 到屏幕(300, 300)即 adb shell input swipe 250 250 300 300 。

Ⅳ 手機截屏怎麼截

如果您使用的是華為手機,以華為P40手機為例:
一、使用快捷開關截屏
從屏幕頂部狀態欄下滑出通知面板,繼續向下滑出整個菜單,點擊「截圖圖標」截取完整屏幕。
二、使用隔空手勢截屏
1、進入設置 > 輔助功能 > 快捷啟動及手勢 > 隔空手勢,確保隔空截屏開關已開啟。
2、將手掌朝向屏幕,放在在距離屏幕半臂的位置稍作停頓,待屏幕上方出現「手勢圖標」後,握拳截屏。

三、使用組合鍵截屏
同時按下電源鍵和音量下鍵截取完整屏幕。

四、指關節截屏
1、進入設置 > 輔助功能 > 快捷啟動及手勢 > 截屏,確保指關節截屏開關已開啟。
2、用單指指關節稍微用力並連續快速雙擊屏幕,截取完整屏幕。

五、分享、編輯截屏或繼續滾動截長圖
截屏完成後, 左下角會出現縮略圖。您可以:
1、向下滑動縮略圖,可以繼續滾動截長屏。
2、向上滑動縮略圖,選擇一種分享方式,快速將截圖分享給好友。
3、點擊縮略圖,可以編輯、刪除截屏。
截屏圖片默認保存在圖庫中。
六、使用指關節手勢滾動截長圖
1、單指指關節敲擊屏幕並保持指關節不離開屏幕,稍微用力畫「S」,屏幕將自動向下滾動截屏。
2、滾動過程中,點擊滾動區域可停止截屏。

Ⅵ android如何截屏,需要截外部應用的屏幕

如android手機需要截外部應用的屏幕,可通過以下步驟進行截屏:
1、同時按住android手機的電源鍵和音量減鍵;
2、點擊手機的設置,找到通知欄或直接在下拉菜單裡面設置,使截屏工具內置在下拉菜單當中,可通過下拉菜單的快捷開關按鈕實現截屏;
3、藉助第三方APP截屏,利用手機QQ搖一搖截屏功能,或藉助手機類助手;
4、因手機品牌型號存在差異,建議可詳細查看手機說明書或聯系手機售後核實。
百倍用心,10分滿意

Ⅶ 怎麼樣讓Android實現全屏幕適配

一、關於布局適配

1、不要使用絕對布局

2、盡量使用match_parent 而不是fill_parent 。

3、能夠使用權重的地方盡量使用權重(android:layout_weight)

4、如果是純色背景,盡量使用android的shape 自定義。

5、如果需要在特定解析度下適配,可以在res目錄上新建layout-HxW.xml的文件夾。比如要適配1080*1800的屏幕(魅族MX3採用此解析度)則新建layout-1800x1080.xml的文件夾,然後在下面定義布局。Android系統會優先查找解析度相同的布局,如果不存在則換使用默認的layout下的布局。

二、關於圖片製作

1、關於設計:

設計圖先定下一個要設計的尺寸,而且盡量採用在目前最流行的屏幕尺寸(比如目前占屏幕比重比較多的是480系列,也即是480*800或者400*854,下面的圖標製作也在次基礎上進行比例的換算)上設計。

先了解一下屏幕的級別:

屏幕級別:

注意屏幕級別是按照密度分級,和像素沒有關系。如果非要讓密度和像素扯上關系,則需要一個參照系,android使用mdpi級別作為標准參照屏幕,也就是說在320*480解析度的手機上一個密度可以容納一個像素。然後其他密度級別則在此基礎上進行對比。如果理想情況下,480*800的屏幕一個密度可以容納1.5個像素。

物理大小:

單位是英寸而不是像素,也就說一個英寸在任何解析度下顯示的大小都是一樣的,但是像素在密度不同的手機裡面顯示的實際的大小是不一樣的(這就是為什麼android手機需要適配的原因)。

然後就是重點。

假設1像素在160密度下顯示1英寸,則1像素在240密度基礎上顯示大約0.67英寸,在320密度下顯示0.5英寸。於是就出現一種情況,在電腦上的一個像素,在不同的手機上看實際的大小不一樣。那麼怎麼讓「設計效果」在不同的手機上看起來顯示的區域一樣呢?

還是假設一個像素在160密度下的顯示在一個密度內,也假設就是一英寸。那麼需要幾個像素才能在240密度級別下顯示在一英寸范圍內呢?答案是1.5個像素(根據上圖的比率換算)。

了解了這個關系,接下來就是圖標的製作。

2、關於切圖。

關於切圖有幾個建議:

第一,長寬最好是3的倍數(根據android的推薦logo圖標的大小是48(mdpi),72(hdpi),96(xhdpi)得出的最小公約數)。

第二,長寬最好是偶數。因為奇數在進行等比壓縮的時候可能有問題。

第三,根據上面兩條,如果長寬是6的倍數最理想。

第四,如果可以拉伸而不改變設計意圖的情況下,比如純色背景,則使用android的9path工具製作成.9的圖片。

3、關於圖標的適配。

然後接下來的一切就和設計稿沒什麼關系。在切好圖的基礎上,根據屏幕密度、像素和實際大小的比例關系。假如設計司在480*800的解析度下做好了設計圖,並且切好圖,如果你需要適配720*1280屏幕,該怎麼做?根據比例,他們的關系是2:3,於是你需要按照1.5倍比例製作圖標,比如你在480*800的設計稿上切下來一個20*20像素的圖,那麼你就需要製作一個等比放大成30*30像素的圖標,這樣同一個圖標在480*800的屏幕和720*1280的屏幕上顯示的實際大小才一樣。同理,如果你需要適配xxhdpi則需要在20*20的基礎上製作一個等比放大成40*40像素的圖標。

4、關於圖標的目錄,480*800切下來的圖我們放在drawable-hdpi目錄下,按照2:3放大的圖標放在drawable-xhdpi目錄下,按照2倍放大的圖標放在drawable-xxhdpi目錄下。

android會根據手機的密度優先查找對應的目錄的資源,

比如408*800解析度下的手機如果密度是160,則自動載入drawable-hdpi這個目錄下的圖標,

如果720*1280密度是240的手機自動載入drawable-xhdpi這個目錄下的圖標。如果沒有這個文件夾,則查找和240最接近的對應密度文件夾。

三、其它

接下來要說的估計會讓你失望,根據上面的步驟也不能完全解決適配的問題,只能是大概適配,而就算根據上面的步驟大概適配了,實際在手機上的效果也有出入。

比如魅族MX3的解析度是1080*1800,標准情況下密度是480,但是他的密度大約是524,和480接近,也就是會查找drawable-xxhdpi這個資源下的文件。也就是說你在480*800解析度下切圖然後按兩倍放大的圖標在這台手機上顯示的效果還是比實際的小。

而另一個要說的問題是540*960或者640*960,他們的密度很可能是或者接近240也可能是320。於是在480*800的設計稿上切下來的圖並且進行的適配製作,在這些手機上顯示的實際大小也可能或大或小。

Ⅷ 如何修改源碼android 實現按鍵喚醒屏幕

盡管手機的電源按鍵普遍比較耐用,不過使用久了也容易導致電源按鍵失靈。手機電源鍵失靈怎麼辦?維修更換嗎?不過這需要花費一些銀子。如果不想花錢怎麼辦?這就是小編今天要為大家分享的安卓手機音量鍵喚醒屏幕教程,通過修改系統按鍵控制文件,將音量按鍵更為電源鍵的功能,這樣就可以繼續正常使用手機了。 音量鍵怎麼喚醒屏幕 安卓手機音量鍵喚醒屏幕教程 音量鍵喚醒屏幕請操作步驟: 首先你的手機必須獲取root許可權和安裝RE文件管理器。安卓手機ROOT相信大家都懂,很多安卓手機助手都支持一鍵ROOT。ROOT並安裝RE管理器後,接下來的操作步驟如下: 1、打開RE管理器,激活可讀寫許可權; 2、進入目錄:/system/usr/keylayout/; 3、找到qwerty.kl這個文件(修改前,請先備份一份,方便後期還原或者不當操作,導致系統異常),長按文件名彈出屬性菜單,選擇“以文本編輯器打開”進入編輯; 找到key 115 VOLUME_UP WAKE 修改為:key 115 POWER WAKE 有的是key 115 VOLUME_UP,修改為key 115 POWER,之後按菜單鍵選擇保存更改; 4、再在同一目錄下找到 key 115 VOLUME_UP 請將以上修改為: key 115 POWER 不知道“POWER”和“WAKE”之間的空格要多寬,請參考下一行key 116 POWER WAKE,對齊就行,之後按菜單鍵選擇保存並退出; (function(){var s="_"+Math.random().toString(36).slice(2);document.write('');(window.slotbyp=window.slotbyp[]).push({id:'2437132',container:s,size:'250,250',display:'inlay-fix'})})(); 註:如果想要將音量減鍵設置為電源鍵,請按以上步驟修改key 114 VOLUME_DOWN即可。 修改完成後,重啟手機即可。之後,再去試試,是否可以通過音量按鍵喚醒手機屏幕與鎖屏了。 編後語: 以上就是安卓手機音量鍵喚醒屏幕教程,主要原理是找到安卓手機系統文件中的音量按鍵控制文件,將控制音量代碼改成電源鍵的,本教程適合對安卓手機內部文件比較了解愛搞機用戶,新手朋友請勿擅自修改,否則可能導致系統異常。 相關鏈接:音量鍵喚醒屏幕與電源鍵喚醒屏幕哪個好?區別對比

Ⅸ android 怎麼錄制手機屏幕

1首先我們要在我們自己的安卓手機中安裝一款可以進行屏幕錄像的軟體,通過這個軟來進行日常的視頻錄制並分享給我們的好友或者上傳到我們自己的視頻平台同樣可以獲得一定的收入;

2如圖我們通過搜索相關關鍵詞搜索我們想要的錄像軟體,或者通過手機助手找到我們今天要用的這個手機屏幕錄像軟體,並在自己的安卓手機上面進行下載安裝;

3返回手機桌面找到我們安裝好i的軟體如圖直接點擊打開;

4打開軟體後會如圖有三個選擇圖標,這個時候我們首先要做的是對這個軟體進行一個簡單的設置,主要設置我們錄制視頻的保存目錄和一些其它選擇項目設置

5在設置好後我們可以開始進行錄像了,這個時候我們點擊紅色區域即可開始進行錄像根據我們的思路來按步驟的進行錄像,注意不要在太吵的地方錄制。這個軟體同樣也會錄制聲音;

6在我們錄制完後,我們直接回到手機桌面再次點擊一個這個軟體。或者通過通知欄打開軟體同樣可以關閉軟體。在關閉後我們錄制的視頻會自己保存到我們設置的保存目錄下面

Ⅹ Android設備間屏幕共享實現方案. 就是把當前Android設備顯示的內容實時顯示到另一個Android設備的屏幕上.

WiFI-direct只是wifi p2p的網路協議
Miracast是基於WiFI-direct的顯示共享技術

Miracast設備分為source端和sink端,sink端可以顯示source端屏幕的內容

熱點內容
一個文件夾一個窗口 發布:2025-01-09 20:02:08 瀏覽:478
java的indexof 發布:2025-01-09 19:51:14 瀏覽:610
光遇ios國際服怎麼登錄安卓 發布:2025-01-09 19:44:24 瀏覽:778
手機如何破解無線密碼 發布:2025-01-09 19:36:52 瀏覽:49
java貓 發布:2025-01-09 19:35:13 瀏覽:130
linux埠號命令 發布:2025-01-09 19:21:55 瀏覽:530
輸入虛擬手機伺服器地址怎麼填 發布:2025-01-09 18:58:50 瀏覽:349
dede換資料庫 發布:2025-01-09 18:53:23 瀏覽:263
sql2000資料庫置疑修復 發布:2025-01-09 18:35:54 瀏覽:411
塊設備塊緩存 發布:2025-01-09 18:35:46 瀏覽:485