2011-08-05 40 views
0

ギャラリーに表示される前に画像の下にオレンジ色の線を追加するにはどうすればよいですか?
私は絵を他のすべてから突き出るようにマークしたいと思います。imageViewイメージの下に橙色の線をプログラムで追加するにはどうすればよいですか?

私はLayoutParamsのすべての種類をテストしたが、アドバイスを必要としています。
xmlでのみこれを行う方法の説明を参照してください。ここ
(誰もがITを必要とする場合WORKING溶液でUPDATE)アダプタ

の私getViewある
imageViewWithLineはラインが引かれたりしませ

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; 

    } 
} 
するかどうdetermentするブール
を持つカスタムImageViewのです

答えて

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枚の画像がある場合は、1枚の画像を表示するためにすべてを再描画するのは効率的ではありません。唯一 – Erik

関連する問題