csh_34 2013-04-25 09:16 采纳率: 0%
浏览 2712
已采纳

在 imageview 上面设置 imageview

在camera picture上有一个动态的imageview,现在我想在我选择的 imageview上设置刻度标记,在下面代码的基础上再如何修改呢?

@Override
protected void onCreate(Bundle savedInstanceState) 
{   
    super.onCreate(savedInstanceState);
    setContentView(R.layout.headshotallphoto);
    dbHeadshot = new DataHelperHeadshot(this);
    DisplayMetrics displaymetrics = new DisplayMetrics();       
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);      
    ht = displaymetrics.heightPixels;      
    wt = displaymetrics.widthPixels;        
    GridView imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
    imagegrid.setAdapter(new ImageAdapter(getApplicationContext(),bmp));
    imagegrid.setOnItemClickListener(this); 
}
public class ImageAdapter extends BaseAdapter
{
    private Context mContext;
    private Bitmap[] mImageArray;

    public ImageAdapter(Context c, Bitmap[] imgArray) 
    {
          mContext = c;
          mImageArray = imgArray;
    }
    public int getCount() 
    {
          return mImageArray.length;

    }
    public Object getItem(int position)
    {
          return position;
    }
    public long getItemId(int position)
    {
          return position;
    }
    public View getView(int position,View convertView,ViewGroup parent)
    {
        System.gc();
        ImageView i = null ;//= new ImageView(mContext.getApplicationContext());
        if (convertView == null) 
        {               
            i = new ImageView(mContext);
            i.setLayoutParams(new GridView.LayoutParams(92,92));
            i.setScaleType(ImageView.ScaleType.CENTER_CROP);
            i.setPadding(8, 8, 8, 8); 
            i.setImageBitmap(mImageArray[position]);              
        }
         else 
             i = (ImageView) convertView;           
         return i;
    }
}
public Bitmap decodeFile(String filePath) 
{
    BitmapFactory.Options o = new BitmapFactory.Options();
    o.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(filePath, o);
    // The new size we want to scale to
    final int REQUIRED_SIZE = 100;
    final int H = 50;
    // Find the correct scale value. It should be the power of 2.
    int width_tmp = o.outWidth, height_tmp = o.outHeight;
    int scale = 1;
    while (true) {
        if (width_tmp < REQUIRED_SIZE && height_tmp < H)
            break;
        width_tmp /= 2;
        height_tmp /= 2;
        scale *= 2;
    }
    // Decode with inSampleSize
    BitmapFactory.Options o2 = new BitmapFactory.Options();
    o2.inSampleSize = scale;        
    bitmap = BitmapFactory.decodeFile(filePath, o2);
    return bitmap;
}
public void onItemClick(AdapterView<?> a, View v, int position, long id) 
{
    ImageView tickmark = new ImageView(this);
    tickmark.setBackgroundResource(R.drawable.imgredselectmark);
}
  • 写回答

1条回答

  • yongyong_21 2013-04-26 02:44
    关注

    使用 Frame layout:

    <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="5dip">
            <ImageView
        android:id="@+id/image_check"
                android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
                android:src="@drawable/tick"/>
                    <ImageView
                    android:id="@+id/imageview"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:src="@drawable/image">
    

    在 GridView 中

    gridview.setOnItemClickListener(new OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, final int position,
                    long id) {
                view.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    if(view.findViewById(R.id.image_check).getVisibility==ImageView.VISIBLE)
       {
    view.findViewById(R.id.image_check).setVisibility(ImageView.VISIBLE)
       }
      else
      {
    view.findViewById(R.id.image_check).setVisibility(ImageView.GONE)
      }
    }
    }
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀