問題タブ [shapedrawable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
76325 参照

android - Shape Drawable Size が機能しない

幅を設定したい非常に単純な形状があります。

ただし、これを EditText の背景に割り当てると、幅 2dp の長方形ではなく、オレンジ色の背景が表示されます。サイズの設定が機能しないのはなぜですか? 左側にオレンジ色の長方形がある透明なドローアブルを作成したいと考えています。これもセレクターにラップしています:

サイズが変わるかどうかを確認するために、高さを追加してみました。そうではありません。サイズを完全に無視しているようなものです。なんてこと?

0 投票する
3 に答える
442 参照

android - Android - 角丸長方形内の角丸長方形

現在、ログイン ページをデザインしていて、角丸四角形を使用する際に問題が発生しました。私の現在のレイアウトは次のようになります。

ここに画像の説明を入力

これは、小さい角丸長方形を含む角丸長方形です。

ご覧のとおり、両方の長方形の右端が結合しているように見えます。ただし、より鮮明な外観にするために、2 つの長方形の境界線間の距離を一定に保ちたいと考えています。これを行う方法はありますか?

0 投票する
2 に答える
15562 参照

android - Android の破線ドローアブルの潜在的な ICS バグ

以下は、XML で ShapeDrawable として定義された破線です。

これにより、いくつかの Gingerbread フォンで素敵な点線が描画されます。ただし、Galaxy Nexus では、ダッシュは無視されているように見え、形状は連続した線として描かれます。さらに興味深いことに、ICS を実行しているエミュレーターは、ダッシュで正しくレンダリングされます。これは、物理デバイスが台無しになっているだけです。

明らかな何かが欠けていますか?それとも、これは本当に Android 4.0 のバグですか? ラインはいくつかの場所で使用されます。ImageView の例を次に示します。

0 投票する
2 に答える
4744 参照

android - xmlドローアブルでは、シェイプラインは常に黒です。

下の画像のように見えるドローアブルを作成しようとしています。1dpそれぞれが異なる色の3本の水平線で、残りのスペースはグラデーションで埋める必要があります。

灰色の部分はグラデーションを表します

だから私はこれを書いた:

グラデーションは正しく描画されますが、3本の線は黒のままです。結果なしで追加しようとしました<stroke android:color="a_color" />

私は何が欠けていますか?

0 投票する
5 に答える
27367 参照

android - 画面サイズのパーセンテージとしてのグラデーション半径

画面サイズに合わせて調整される半径で、放射状のグラデーションの背景を持つシェイプ ドローアブルを作成しようとしています (関連ドキュメントを参照してください)。

これは私のコードです:

しかし、うまくいかないようです。「%p」を削除すると機能しますが、半径は静的になり、画面サイズに調整されません...何が問題なのですか?

0 投票する
1 に答える
1842 参照

android - shape drawable と canvas.draw の違い、回避策は?

アプリケーションでボタンを表示し、テキストを編集する 2 つの方法を使用しています。

結果はまったく同じになると思いますが、そうではありません。それぞれのストロークの小さな違いを以下に示します。

ここに画像の説明を入力

どちらも、ストローク幅が 2 dp、角の半径が 8 dp の丸い長方形です。それぞれのコードは次のとおりです。

左、背景として使用される描画可能な形状:

右、カスタム ビューの onDraw メソッド:

ウィズ:

そして、おそらく同等の方法でグラデーションを表示すると、小さな違いが見られます。シェイプ ドローアブルの表示がより良くなり、色がより良く見え、線がぼやけません。

誰かが理由/回避方法を説明してもらえますか? 片方だけ使うなら2番ですが、見た目がすっきりしないので使いたくないです。助けてくれてありがとう!

編集 :

驚くべきことに、この違いは、カスタム レイアウトのストローク幅が奇数の場合にのみ発生します。値が偶数の場合、表示はまったく同じです。

0 投票する
1 に答える
4436 参照

android - Android: RoundRectShape: 角の半径を変更する

の関数RoundRectShapeで描画される があります。ViewonDraw()

この形状の角は、オーバーライドされたonTouchEvent関数 (invalidate()への呼び出しを強制するために呼び出されますonDraw()) を介して、このビューでのドラッグ アクションによって変更されます。

で変数を初期化するときに、Eclipse は、描画/レイアウト操作中にオブジェクトの割り当てを回避する (代わりに事前に割り当てて再利用する)onDrawという警告を表示します。

この問題は次のように説明されています。

描画またはレイアウト操作中にオブジェクトを割り当てることは避けてください。これらは頻繁に呼び出されるため、スムーズな UI は、オブジェクトの割り当てによって発生するガベージ コレクションの一時停止によって中断される可能性があります。

これが一般的に処理される方法は、オブジェクトを前もって割り当て、描画操作ごとに再利用することです。

これを行うには、明らかに、コンストラクターで設定されている角の半径を変更できる必要があります。RoundedRectShapeクラスにはセッターがありません (関連するメンバー変数にアクセスできないことは確かです)。

これが小さなオブジェクトで小さな問題であることはわかっていますが、角の丸みの半径を設定するためにクラスが提供する唯一の方法がコンストラクターを使用する場合、オブジェクトを再初期化せずにこれらの角を変更するにはどうすればよいでしょうか?

それとも、これは最善を尽くすことを、可能なことを行うことに置き換えなければならない場合にすぎませんか?

ありがとう、

PSメソッドでコンストラクターを呼び出すと、警告は削除されますが、とにかく毎回呼び出されるonTouchEvent()ため、何も達成されませんonDraw()invalidate()

0 投票する
1 に答える
5910 参照

android - PathShapeでShapeDrawableを使用して、カスタムビューに線を描画するにはどうすればよいですか?

カスタムで線を引こうとしていますViewPathここでは、単一のセグメントだけで単純なものを作成し、そこから作成し、最後にそれを使用して内側に描画することを意図して、PathShapeそれをに貼り付けました。ただし、これは機能しません。ここに私の例を参照してください。ShapeDrawableCanvasonDraw()

onDraw()メソッドのコメントからわかるように、PathShapeまたはを使用して実際ShapeDrawableに描画することはできません。試してみると何も描かれていません。誰かがその理由を知っていますか?PathCanvas

これをテストしているデバイスはAndroid4.1.1を実行しています。

0 投票する
1 に答える
843 参照

android - Android:高度なグラデーションスタイリング

リストビューを少しポップにしようとしている画像が不足していることをお許しください。私が試しているオプションの1つは、各リスト行の背景にグラデーションを追加することです。グラデーションには3つの色があり、デフォルトでは次の構造に似ています。

-(開始色)
|
|
-(中央の色)
|
|
-(終了色)

私はそれをもっとこのようにしたいと思います:

-(開始色)
|
-(中央の色)
|
|
-(中央の色)
|
-(終了色)

違いは、中央の色がより多く、グラデーションが端に非常に近いところから始まることです。

誰かが私にいくつかのガイダンスを提供できますか?

編集私は画像でオプションを試すことに反対していませんが、私は可能な限り画像から離れようとしています。

0 投票する
0 に答える
334 参照

android - 角丸長方形のアプリ ウィジェット ボタンのカスタム カラーを指定する

ユーザーが色選択ダイアログを介してボタンの背景色を設定できるウィジェットを作成するアプリがあります。ただし、リモートビューのボタンをこの色に設定できる唯一の方法は、これを行うことです

ただし、これにより常に背景が長方形になり、以前に設定された背景ドローアブルが置き換えられます。私がやりたいのは、ボタンをカスタムカラーに設定できる角の丸い長方形の形にすることです。これは可能ですか?