2011-08-05 25 views
0

如何在圖庫中顯示圖像之前在圖像下添加橙色線條?
我想標記圖片,以便從所有其他標記中突出顯示。如何以編程方式在imageView圖像下添加橙色線條?

我測試了各種LayoutParams,但需要建議。
查看解釋如何在xml中做到這一點。
這裏是我getView在適配器

(有工作液UPDATE,如果有人需要它)
imageViewWithLine是有一個布爾
以威懾,如果行應繪製自定義的ImageView或不

public View getView(int position, View convertView, ViewGroup parent) { 

    if (convertView == null){ 

     BitmapFactory.Options bf = new BitmapFactory.Options(); 
     bf.inSampleSize = 8; 
     Bitmap bitmap = BitmapFactory.decodeFile(files.get(position).getImagePath(),bf); 
     ImageViewWithLine imageViewWithLine = new ImageViewWithLine(ctx, null); 
     BitmapDrawable b = new BitmapDrawable(getResources(),bitmap); 
     imageViewWithLine.setLayoutParams(new Gallery.LayoutParams(80, 70)); 
     imageViewWithLine.setScaleType(ImageView.ScaleType.FIT_XY); 
     imageViewWithLine.setBackgroundResource(GalItemBg); 
     imageViewWithLine.setBackgroundDrawable(b); 
     convertView = imageViewWithLine; 

    } 

    if(files.get(position).addLine() == true){ 
     ((ImageViewWithLine)convertView).setLine(true); 
    }else 
    ((ImageViewWithLine)convertView).setLine(false); 

    return convertView; 

    } 
} 

回答

2

您可以擴展ImageView類並創建一個自定義視圖。在自定義視圖中,您可以覆蓋onDraw並以這種方式繪製橙色線條。

更新:

這只是一個正常的按鈕,隨着它的底部的橙色條。尺寸不準確,但它應該給你一個很好的起點。

public class ButtonWithLine extends Button { 

    public ButtonWithLine(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    protected void onDraw(Canvas canvas) { 
     Paint paint = new Paint(); 
     paint.setColor(Color.rgb(255, 125, 0)); 
     paint.setStyle(Paint.Style.FILL); 

     float height = TypedValue.applyDimension(
      TypedValue.COMPLEX_UNIT_DIP, 10, getResources().getDisplayMetrics()); 

     canvas.drawRect(0, getHeight() - height, getWidth(), getHeight(), paint); 

     super.onDraw(canvas); 
    } 
} 
+0

感謝,會嘗試, – Erik

+0

感謝,會給它一個去 – Erik

+0

它的工作,但我必須滾動畫廊外的視圖,並再次得到線來表示。如果我在圖庫中有100張圖片,則只需要顯示一個圖像行就可以避免重新繪製圖像。有沒有辦法告訴畫廊重新加載只在圖像或東西 – Erik

相關問題