問題タブ [porter-duff]

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 投票する
3 に答える
880 参照

android - ボタンの背景の描画可能な色をプログラムで設定する

square_transparent.png

長方形の形状であるが完全に透明なドローアブルを事前に作成しました。ここで、このドローアブルをコードでボタンに割り当てたいと思いますが、このドローアブルの色を透明からオレンジなどの特定の色に設定したいと思います。

私はすでに次のような他の投稿を使用して同じ設定を試みました-

しかし、うまくいきません。アクティビティがボタンをレンダリングするとき、それはまだ透明です。

また、ドローアブルをボタンに割り当てる前に、mDrawable.setAlpha を 255 (完全に不透明) に明示的に設定しようとしましたが、それでも機能しません。

誰かがこれを他の方法で機能させている場合は、提案してください。

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

android - ViewGroup の黒い四角形 PorterDuff.Mode.CLEAR

(ViewGroup経由で)水平にスクロールできるビューを作成しました。左側には、行の画像 (タイトルのようなもの) があります。ビューを左にスクロールすると、項目が行のタイトルの下に移動します。タイトルの背景が透明になっているため、このタイトルの下にアイテムが表示されます。タイトルの下にある項目の一部を削除したい。タイトルを描画する前に、drawChild メソッド内で PorterDuff.Mode.CLEAR を使用して Paint を介して四角形を描画しようとしました。その結果、タイトルの下に黒い長方形ができました。同じ質問をいくつか見つけましたが、他のコンテキストでは:

https://code.google.com/p/android/issues/detail?id=54105#c1

Android Paint PorterDuff.Mode.CLEAR が私のビューに黒い色を描く

しかし、この問題の解決策は見つかりませんでした。私が理解しているように、PorterDuff.Mode.CLEAR を使用する前に、他のビットマップを描画する必要があります。私の場合、これはできません。ビューでいくつかの四角形を消去(私の場合は透明にする)できますか?

編集:

また、このメソッドをどこかで見ましたが、レイアウトはまったく変更されませんでした:

編集2。saveLayer を試しました:

編集3

ここに画像の説明を入力

左、右、上下にスクロールできるビューがあります。このビューには、上部と左側に 2 種類のヘッダーが含まれており、サイズが異なる項目があります。このすべてのアイテムをビューに追加すると、最初にアイテムを追加してからヘッダーを追加します。この場合、ヘッダーは常にアイテムの前に描画されます。ユーザーが左/上にスクロールすると、アイテムは左/上に移動しますが、ヘッダーはその位置にとどまり、このアイテムはヘッダーの下になります。ヘッダーの背景があったときは問題ありませんでした。ヘッダーの下に項目が表示されなかったからです。しかし、今は背景がなく、ヘッダーの下に項目が表示されます。そのため、drawChild(すべてのアイテムを呼び出す)を使用して、ヘッダーの下にあるアイテムの一部を消去しようとしました。しかし、私が使用する場合

すべてのアイテムに使用する必要があります。drawChild の私のコード

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

android - dispatchDraw で Android ViewGroup の子の色を入れ替える

下にある子ビューをうまく表示するパスでアニメーション化した流動的な塗りつぶし効果を持つはずの ViewGroup (具体的には FrameLayout) があります。

問題は、液体の塗りつぶし線の上で、ビューの 2 色を反転させて子供たちに見せる必要があることです。(Black<->White) ビットマップを単純に繰り返し処理しないと、これを達成する方法がわかりません。これは、エイリアシングが多く、レンダリングが遅すぎる非常に貧弱なコピーを提供します。

これは、dispatchDraw の現在の機能の煮詰めたバージョンです。

無数の異なる ColorFilters と Transfer Modes を試しましたが、役に立ちませんでした。また、子供たちは、私がより単純な色の置換を行うために背景を透明のままにすることはできません。

0 投票する
6 に答える
1523 参照

android - Android: 円形のドローアブル

Drawable を円形にクリップするこのカスタム Drawable を作成しました。しかし、私の実装では、渡されたドローアブルは、循環形式ではなく元の形式で出力されます。

私の間違いは何ですか?

また、SquareImageview を使用して、onMeasure でビューを正方形にするこのドローアブルを表示しています。この質問は、円形のイメージビューを対象としたものではありません。

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

android - PorterDuffColorFilter を使用してビットマップをさまざまな色にフィルター処理する

次の画像があります。

ここに画像の説明を入力

ここで、実行時にこの画像をさまざまな色にフィルター処理したいと思います。たとえば、下の部分が濃い緑で、左上の部分が明るい緑である緑のバージョンを生成できるようにしたいと考えています。

これどうやってするの?これは可能ですか?

次のようにビットマップをフィルタリングしてみました。

すべてのを試しPorterDuff.Modeましたが、どれも実際には機能しません。ときどき (例: SRC_IN) 円が完全に新しい色で塗りつぶされ、陰影がまったくないことがあります。それ以外の場合は、正方形が表示されます。

色自体を持たないソース イメージを生成し、そのシェーディングをアルファ チャネルでレンダリングすることを考えました。しかし、それがうまくいくかどうかはわかりません。結果の画像を完全に不透明にしたい(上に表示されている外側の影を除く)。

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

android - RecyclerView での画像のリサイクルが正しくない

RecyclerView各行にアイコンが付いています。アイコンは動的に色付けする必要があるため、ビューをバインドするときに白いアイコンを使用し、カラー フィルターを適用します。奇妙なことに、結果のビューに多くの不一致が生じます。

この例では、3 行ごとに赤を作成し、残りを緑にしようとしています (注 #18)。

ここに画像の説明を入力

下がアダプターです。ご覧のとおりImageView、ホルダーを再バインドするたびに、変更されたアイコンを に適用しているため、おそらく古い再利用されたイメージのための余地がありません。

item_layout.xml:

何を与える?

ありがとう。

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

android - Android 中央に円形の穴をあける切り抜き画像

私はアンドロイド脳のアイデアのために再び来ます!

ビットマップがcenterCropとしてスケーリングされているimageViewに円の穴を入れたいと思います。円の穴 (左と下からの dp) と穴の半径を配置する必要がある場所を知っています。でも作り方がわからない!

Porterduff を使用して穴を開けられることはわかっていますが、何をすればよいでしょうか?

  • カスタム ビットマップ
  • カスタム ドローアブル/ビュー
  • カスタムコード

ありがとう

回答に続いて、穴のある私の CustomImage があります:

これらの行を使用してプログラムで呼び出しました:

しかし、onDraw()メソッドは2回呼び出されます(おそらく必要です)が、これにより2つの穴ができます。1つはパラメーターを変更できますが、もう1つは同じ場所にあります。のコンテナMyImageViewRelativeLayout.

誰かがアイデアを持っている場合は?@tiny-sunlight ?

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

android - 選択したタブアイコンの色を変更するAndroid TabLayoutは、薄暗い白色を示しています

Android デザイン ライブラリのイメージでタブ レイアウトを使用しました。選択したタブ アイコンの色を白に変更すると、白が完全に表示されず、薄い白に表示されます。選択したタブに完全な白色を表示するには?