2016-05-24 23 views
1

アンドロイド携帯電話で設定 - >開発者向けオプションの「レイアウト境界を表示する」オプションがあります。これをチェックすると、あなたのアンドロイド携帯電話のデフォルトGUI上のすべてのビュー要素のすべてのエッジが表示されます。これらはInstagramやFacebookのようないくつかのアプリケーションにも表示されています。 私がしたいことは、私の電話がこれらのエッジを検出するために使用するアルゴリズムを理解することです。 (「表示レイアウト境界」と - オプションがチェック)Instagramのようなアプリで、アンドロイドがビュー要素の境界線やエッジを検出する方法

例:

enter image description here

編集:私はレイアウト債開発者向けオプションを活性化せずに取得したいです。レイアウトが不明で、私の電話が既に使用しているのと同じアルゴリズムを使ってレイアウトを取得したいとします。

編集2:「レイアウトの境界を表示」をプログラムで使用するには、アプリがオプションではないシステムアプリである必要があります。手動で起動してからプログラムを実行することもできません。これはレイアウト債券を使いたいだけでなく、その背後にあるアルゴリズムも理解したいからです。

答えて

0

これは長時間ですが、デバイスの幅をとって計算し、サムネイルのmarginLeft、そのサムネイルの幅、marginの次のような値で減算することもできますボタン、およびそのボタンの幅(またはあなたが既に従っている人のためのチェックボックスと矢印があるグループ)...

デバイスの幅は、

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 

ここから>Get screen dimensions in pixels

+0

私は不明であったかもしれない、それは私が得たい "赤い線"です。赤い線が不明で、それらを取得したいとします。 **デベロッパーツールでオプションを有効にすると、アンドロイドデバイスはそれらをどのように取得しますか?私はこれを複製したい**。プログラムでこのオプションを有効にするには、アプリがオプションではないシステムアプリである必要があります。手動で起動してからプログラムを実行することもできません。 – Taegos

0

、そのような境界線を作成する描画可能リソースとして、このコードを使用して、あなたのレイアウトのやレイアウトグループの背景として、それを置くために:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <!-- view background color --> 
    <solid 
     android:color="#00000000" > 
    </solid> 

    <!-- view border color and width --> 
    <stroke 
     android:width="1dp" 
     android:color="#282828" > 
    </stroke> 

    <!-- The radius makes the corners rounded --> 
    <corners 
     android:radius="5dp" > 
    </corners> 

</shape> 

あなたが好きに色を変えることができ、あなたが望むいけない場合角を丸くするには、半径を1に設定します(0が機能するかどうか、または角のビットを完全に削除できるかどうかはわかりません)。また、これはあなたに赤い線ではなく、青い角を与えることに注意してください。私はまだそれらをどうやって行うのか分かりません。

+0

ありがとうございますが、私が探しているものではありません。私は形状を描く方法を知っています**私がしたいのは**私の電話がこれらのエッジを検出するために使用するアルゴリズムを複製することです。 Instagram/Facebookのようなアプリケーションで境界線やマージンがどこにあるのかを電話はどのように知ることができますか? – Taegos

関連する問題