正如iOS開發人員告訴我的,當有人點擊它時(我不知道它有多真實),iOS會使圖像變暗,所以我需要同樣的東西。Java Android如何讓ImageView變暗onClick
據我所知,我需要一個通常的selector.xml來繪製不同的狀態。 我需要的是以簡單的方式使圖像變暗,可能會以某種方式在xml-drawable中顯示,因此我不必使用其中沒有技能的Photoshop。
有沒有辦法在xml級別這樣做?
正如iOS開發人員告訴我的,當有人點擊它時(我不知道它有多真實),iOS會使圖像變暗,所以我需要同樣的東西。Java Android如何讓ImageView變暗onClick
據我所知,我需要一個通常的selector.xml來繪製不同的狀態。 我需要的是以簡單的方式使圖像變暗,可能會以某種方式在xml-drawable中顯示,因此我不必使用其中沒有技能的Photoshop。
有沒有辦法在xml級別這樣做?
您可能會將dark rectangle
放在您的位圖後面並設置Bitmap's
Opacity
而不是在xml
中嘗試。
我認爲這是最簡單的決定,謝謝 – user2976267
@Homo sapiens:你的意思是黑暗的矩形? – Ashwin
如果圖像不是矩形,並且它具有一些透明度,該怎麼辦?如果我們放置一個黑色的矩形,那麼圖像會得到效果,但透明區域看起來很奇怪。 – Arunkumar
我認爲你可以做到這一點添加clickListener到您的圖片...
ImageView image = (ImageView) view.findViewById(R.id.image);
icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ImageView image = (ImageView)v;
image.setImageAlpha(alpha);
}
});
正確,但是您絕對需要在視圖後面放置較深的矩形或深色的圖像,然後通過更改視圖的Alpha來獲得所需的效果。 –
你可以在你的Java類中使用下面的代碼:
mView.getBackground().setColorFilter(Color.parseColor(<Color code of your choice>), PorterDuff.Mode.DARKEN);
上面這一行改變了顏色在Color.parseColor()中提供的顏色分享,以及如何使用PorterDuff.Mode定義它的陰影。點擊按鈕調用上面的代碼,檢查顏色變化是否生效。
'getBackground()'可能返回null,因此在使用前請檢查爲空。 – Miao1007
我用
private void darkenImage(ImageView imageView)
{
imageView.setColorFilter(Color.rgb(123, 123, 123), android.graphics.PorterDuff.Mode.MULTIPLY);
}
private void undarkenImage(ImageView imageView)
{
imageView.clearColorFilter();
}
private boolean isImageDarkened(ImageView image)
{
return image.getColorFilter() != null;
}
作品真的很好!
一種可能性是將您的imageview與另一個視圖重疊,然後在視圖上有選擇器。在選擇器中,你可以選擇較暗的背景 – MalaKa