如何在图库中显示之前在图像下添加橙色线?
我想标记图片,以便从其他所有图片中伸出。
我测试了各种LayoutParams但需要建议
请参阅解释如何仅在xml中执行此操作
这是适配器中的getView
(如果需要,可以通过工作解决方案更新)
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;
}
}
答案 0 :(得分: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);
}
}