異なる背景で使用する場合、画像の周りの白い境界線を削除するにはどうすればよいですか?
2 に答える
OK、私は画像を見ましたが、画像の周りの白い境界線を見たくないので、ImageViewを画像と同じ形にしたいのです。
要するに、それは可能ではないと思います。ImageViewは、高さ、幅を要求する長方形のビューです。
ただし、不可能なことをしようとするのではなく、アルファマスキング(アルファブレンディングのサブセット、詳細についてはグーグルで検索)を使用することをお勧めします。
ちょっとした理論: ビットマップの各ピクセルのアルファビット(半透明ビット)に応じて、そのピクセルと上書きされたピクセルのブレンドの程度が決まります。極端な場合、アルファが255の場合、上書きされたピクセルの代わりに上書きされたピクセルが使用されます(通常は完全に不透明)。alphaが0の場合、ピクセルの上書きは無視されます(transparent)。間にある他のアルファの場合:ブレンディングがあります。
あなたの場合、完全なブレンドを達成するために、境界線のアルファをゼロにする必要があります。手順の概要:。
- 使用するドローアブルをJPEGにすることはできません(JPEGはピクセルごとのアルファ値を保存しません)。PNGを探す
2.境界線のアルファ値がゼロになるように(たとえば、Paint.NETなどのソフトウェアを使用して)、事前にその方法でビットマップを作成して描画可能に保つ必要があります(アルファブレンディングPNGにはgoogleを使用)。
- 画像が動的に作成されている場合は、ブレンド方程式を使用する必要があります(詳細については、PorterとDuffによる資料をお読みください)。
たとえば、これはアルファベット自体以外のアルファ0を持つ透明なピクセルを持つPNG画像です
。
上記は、アクティビティの色付きの背景にアルファブレンドされたPNGです。これがあなたが本当に達成したいことであり、私の答えが実際に役立つことを願っています。
それをメイン画面の背景として使用しようとして、そのレイアウトの重みと高さを「fill_parent」に設定すると、背景は、作成した SRC 呼び出しと同じように参照したい任意の画像にすることができます。これにより、画像が画面のみに表示され、SCR コマンドを使用して画面に書き込むことができます。あなたが行っていることをもっと私たちに教えてくれれば、私たちはもっと助けることができます。