問題タブ [layerdrawable]

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 に答える
12366 参照

android - Android: プログラムで色を ProgressBar に設定する

画面の背景色に応じて色が変更されるため、プログレスバーのprimaryProgress、secondaryProgressにプログラムで色を設定したいと思います。

コード:

編集:

** ここのカラー コードはテスト用です。その後、カラーコードは更新のために他の部分に参照されます。

質問:

に赤で下線を付け、primanyColor.setColorを報告しThe method setColor(int, null) is undefined for the type Drawableます。

上記のコードを変更して機能させるにはどうすればよいですか? ありがとう!

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

android - GestureImageView で LayerDrawable を使用してグライドする

GestureImageView を使用して、選択したテーマのカスタム レイヤーを含むマップを表示しています。テーマに応じて、GestureImageView に LayerDrawable をロードしています。

私がそれを使用する方法では、ビットマップは私のメモリを殺し、OutOfMemoryException をスローします。Glide を使用してこれらのビットマップをロードしたいのですが、Glide で LayerDrawable を使用する方法がわかりません。

編集:グライドなしの私の元のコード:

Glide では、次のような基本的なコードのみを使用しました。

ただし、Glide は LayerDrawable を認識しないため、何らかのモデルを使用する必要があります。

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

android - レイヤーリスト Drawable のアイテムのbottomプロパティをプログラムで変更する

下のストロークを作成するLayerDrawableを作成していますが、レイヤーの下マージンを与える方法がわかりません(Drawablw)。

プログラムで上記のような下マージンを設定したい。

これまでのところ、私はこれを行ってきました:

これについて知っている人はいますか?

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

android - LayerDrawable レイヤーを削除する

からレイヤーを削除するにはどうすればよいLayerDrawableですか? addLayerレイヤーを追加するために使用できますが、レイヤーを削除するために使用できる関数が表示されません。

https://developer.android.com/reference/android/graphics/drawable/LayerDrawable.html

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

android - How to inflate badge counter in MenuItem using custom LayerDrawable

I was following this article. Unfortunatelly, badge isn't drawn. Of course I changed invalidateOptionsMenu method to supportInvalidateOptionsMenu method.

I was checking the log, step by step and found out that draw method in custom Drawable named BadgeDrawable is never called. Why is that?

I'm trying to use it in AppCompatActivity using Support Design Library version 23.0.1

I saw this answer but it seems to be out of date.

Is there anyone who managed to implement badger counter for MenuItem icon inside android.support.v7.widget.Toolbar? If the way shown in the article is wrong then could you suggest other way to achieve the result as in example below?: enter image description here

Here is a setup inside my application:

LayerDrawable XML ic_filter_notifications.xml:

Menu that I use in the Toolbar menu_activity_main.xml:

This is function sets the count int for new BadgeDrawable inside UsefulFunctions class - UsefulFunctions.java:

This is the important scrap of my MainActivity where I invoke BadgeDrawable creation. I also show what's inside onCreate and in onOptionsItemSelected, may be needed - MainActivity.java:

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

android - レイヤーリストのドローアブルは、クリック時のイメージビューで変更されません

Androidでプログラムで描画可能な画像ビューにレイヤーリストを設定しています

私のカスタム Drawable は次のとおりです。

}

これは、レイヤー リスト ドローアブルを作成して imageview に設定するコードです。

イメージビューをクリックすると、ドローアブルを変更しようとしていますが、条件は完全に機能しているため失敗しましたが、レイヤーリストのドローアブルは変更されていません。

imageViewのクリックリスナーの私のコード、

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

android - 小さい画面の imageButton に layerDrawable が表示されない

したがって、私の一般的な問題は、多数の 400 x 600 png Drawable の 80 x 80 領域を取得し、それらをレイヤー化し、imageButton.setImageDrawable() をボタンに入れることに基づいて、imageButton 画像を動的に設定しようとしていることです。これは実際に機能します...デバイスの画面が大きいと仮定します。小さな画面 (読み取り: 電話) の場合、これは失敗します。確かに、私は BlueStacks の「大画面」のみをテストしましたが、小画面での失敗は、Nexus 5 エミュレーター、友人の Turbo、および新しい (おそらく 2 か月前の) Turbo 2 に影響を与えました。

エミュレーターで BlueStacks の顔があり、電話のボタンがないことを示す画像

コードについては...以下は、ボタンを作成する for ループの内部です。

「faceMaker」がリソースからドローアブルを取得する場合、setBounds を使用して、表示されるものに対応するドローアブルの 80 x 80 の領域を取得します (完全なドローアブルが上にレイヤー化され、他のものがレイヤー化されて追加されます。左側の画像を参照してください)サイズ感の違い); faceMaker() のサンプルは次のとおりです。

それで、私の質問は...なぜこれは大きな画面では機能するのに、小さな画面ではひどく失敗するのですか? Drawableの一部のみを表示していた別のボタン(1つのDrawable)で同様の問題がありました。それを解決するために setBounds の問題を修正しましたが、ボタンの頭だけをつかむ必要があるため、faceMaker/ボタン ソリューション全体では機能しません。

これは setBounds の問題ですか? もしそうなら、どうすればそれを解決し、それでも必要な 80 x 80 の領域を取得できますか? (nFaceStartx、nFacex などは、80 x 80 の領域を見つける境界です)。そうでない場合、何が原因ですか?そして、コードでそれを修正するにはどうすればよいですか?

編集:行を追加 Log.e("width", Integer.toString(layerDrawable.getIntrinsicWidth()) + " " + Integer.toString(btnChoice[nN].getWidth()));

..Bluestacks(動作する場所)では「幅80 50」、表示されない電話エミュレーターでは「幅80 150」を吐き出します。なぜそれが起こっているのかはわかりませんが、問題が発生した場合に備えて、そこにあります. xml では、layout:width と layout:height はどちらも 50 dp です。