最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義ImageView實(shí)現(xiàn)在圖片上添加圖層效果

 更新時(shí)間:2016年11月13日 14:30:53   作者:_小馬快跑_  
這篇文章給大家主要介紹了利用Android自定義ImageView如何實(shí)現(xiàn)在圖片上添加圖層的效果,實(shí)現(xiàn)的效果類似在圖片增加秒殺、搶光等標(biāo)簽圖片,對(duì)大家開發(fā)的時(shí)候具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

首先我們先看下效果圖

實(shí)現(xiàn)思路

這是兩張前后對(duì)比圖,右邊第二張圖里面的已搶光標(biāo)簽圖片當(dāng)已經(jīng)沒(méi)有商品的時(shí)候就會(huì)顯示了,在每個(gè)圖片的中心位置,第一想法是在ImageView的外層再套一層RelativeLayout

實(shí)現(xiàn)方法

<RelativeLayout  
 android:layout_width="match_parent" 
 android:layout_height="wrap_content"> 
<SelectableRoundedImageView    
 android:id="@+id/imageView"    
 style="@style/margin_distance"    
 android:layout_width="match_parent"    
 android:layout_height="0dp"    
 android:layout_weight="1"    
 android:background="@drawable/youxuan_bg_shape_normol"    
 android:contentDescription="@string/app_name"    
 android:padding="1dp"    
 android:scaleType="centerCrop" />  
<ImageView    
 android:id="@+id/iv_empty_pic"    
 android:layout_width="wrap_content"    
 android:layout_height="wrap_content"    
 android:layout_centerInParent="true" />
</RelativeLayout>

這樣當(dāng)然是可以的,然而如果XML布局本身就很復(fù)雜,用這樣的寫法又給View Tree加了一層,不夠優(yōu)雅,下面介紹另一種實(shí)現(xiàn)方式:自定義View

public class CenterImage extends ImageView {  
private Paint paint;  
private boolean isCenterImgShow;  
private Bitmap bitmap;  
public void setCenterImgShow(boolean centerImgShow) {    
  isCenterImgShow = centerImgShow;    
  if (isCenterImgShow) {      
  bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);      
  invalidate();    
  }  
 }  
 public CenterImage(Context context) {    
  super(context);    
  init();  
 }  
public CenterImage(Context context, AttributeSet attrs) {    
  super(context, attrs);    
  init();  
 }  
public CenterImage(Context context, AttributeSet attrs, int defStyleAttr) {    
  super(context, attrs, defStyleAttr);    
  init();  
 }  
private void init() {    
  paint = new Paint();  
 }  
@Override  
protected void onDraw(Canvas canvas) {    
 super.onDraw(canvas);    
 if (isCenterImgShow && bitmap != null) {      
 canvas.drawBitmap(bitmap, getMeasuredWidth() / 2 - bitmap.getWidth() / 2, getMeasuredHeight() / 2 - bitmap.getHeight() / 2, paint);    
 }  
 }
}

XML中:

<com.henanjianye.soon.communityo2o.view.CenterImage   
  android:id="@+id/goodsImage"   
  android:layout_width="match_parent"  
  android:layout_height="100dp"  
  android:layout_alignParentEnd="true"  
  android:layout_alignParentRight="true"  
  android:contentDescription="@string/app_name"  
  android:scaleType="centerCrop"  
  android:src="@mipmap/yijia_default_bg" />

代碼中拿到CenterImage的對(duì)象:

CenterImage mGoodsImg =(CenterImage)findViewById(R.id.GoodsImage);
mGoodsImg.setCenterImgShow(true);

當(dāng)setCenterImgShow()里的invalidate()方法被調(diào)用后,CenterImage的onDraw()方法會(huì)重新被調(diào)用并重新繪制,這樣就可以愉快地在ImageView的上面新加一個(gè)圖層。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • Android 5.0 實(shí)現(xiàn)水波擴(kuò)散效果

    Android 5.0 實(shí)現(xiàn)水波擴(kuò)散效果

    這篇文章主要為大家詳細(xì)介紹了Android 5.0 實(shí)現(xiàn)水波擴(kuò)散效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android MenuItem 自定義長(zhǎng)按事件的實(shí)現(xiàn)

    Android MenuItem 自定義長(zhǎng)按事件的實(shí)現(xiàn)

    這篇文章主要介紹了Android MenuItem 自定義長(zhǎng)按事件的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Android控件之菜單的創(chuàng)建方式

    Android控件之菜單的創(chuàng)建方式

    本文給大家分享android控件菜單的兩種創(chuàng)建方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-09-09
  • Android 逆向?qū)W習(xí)詳解及實(shí)例

    Android 逆向?qū)W習(xí)詳解及實(shí)例

    本文主要介紹Android 逆向?qū)W習(xí),這里整理逆向?qū)W習(xí)的思路及學(xué)習(xí)要點(diǎn),并附示例代碼,幫助大家學(xué)習(xí)理解,有需要的小伙伴可以參考下
    2016-09-09
  • Flutter實(shí)現(xiàn)密碼強(qiáng)度校驗(yàn)結(jié)果的示例詳解

    Flutter實(shí)現(xiàn)密碼強(qiáng)度校驗(yàn)結(jié)果的示例詳解

    我們經(jīng)常在一些網(wǎng)站上看到這樣的密碼強(qiáng)度指示,使用三段線,分別用不同的顏色來(lái)表示弱密碼、中等強(qiáng)度密碼和強(qiáng)密碼,本篇我們就用?Flutter?來(lái)實(shí)現(xiàn)這樣一個(gè)密碼強(qiáng)度校驗(yàn)示例,希望對(duì)大家有所幫助
    2023-08-08
  • Android 中TabLayout自定義選擇背景滑塊的實(shí)例代碼

    Android 中TabLayout自定義選擇背景滑塊的實(shí)例代碼

    TabLayout是Android 的Material Design包中的一個(gè)控件,可以和V4包中的ViewPager搭配產(chǎn)生一個(gè)聯(lián)動(dòng)的效果。接下來(lái)通過(guò)本文給大家分享TabLayout自定義選擇背景滑塊的實(shí)例代碼,感興趣的朋友一起學(xué)習(xí)吧
    2016-10-10
  • Popupwindow 的簡(jiǎn)單實(shí)用案例(顯示在控件下方)

    Popupwindow 的簡(jiǎn)單實(shí)用案例(顯示在控件下方)

    下面小編就為大家?guī)?lái)一篇Popupwindow 的簡(jiǎn)單實(shí)用案例(顯示在控件下方)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • 詳解Android官方架構(gòu)中UseCase

    詳解Android官方架構(gòu)中UseCase

    這篇文章主要為大家介紹了Android?官方架構(gòu)中的?UseCase?該怎么寫示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Android實(shí)戰(zhàn)打飛機(jī)游戲之子彈生成與碰撞以及爆炸效果(5)

    Android實(shí)戰(zhàn)打飛機(jī)游戲之子彈生成與碰撞以及爆炸效果(5)

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)打飛機(jī)游戲之子彈生成與碰撞以及爆炸效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android植物大戰(zhàn)僵尸小游戲

    Android植物大戰(zhàn)僵尸小游戲

    植物大戰(zhàn)僵尸小游戲,無(wú)論老少皆愛(ài),非常有意思,具有挑戰(zhàn)性,那么基于代碼是怎么實(shí)現(xiàn)的呢?下面通過(guò)本文給大家介紹Android植物大戰(zhàn)僵尸小游戲,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12

最新評(píng)論

仪陇县| 清徐县| 鹤庆县| 迁安市| 龙州县| 和林格尔县| 英德市| 平乡县| 南京市| 两当县| 平顺县| 布尔津县| 图木舒克市| 龙门县| 延安市| 元江| 南郑县| 曲水县| 峨眉山市| 紫金县| 沁源县| 都江堰市| 临安市| 江陵县| 肃宁县| 沐川县| 崇信县| 灌阳县| 客服| 循化| 福建省| 思南县| 荆州市| 宁安市| 老河口市| 沂水县| 益阳市| 兴海县| 小金县| 南宁市| 德保县|