text, offset) / 2 - 3.5f,
? ? right - dipTopx(mContext, offset) / 2,
? ? top + dipTopx(mContext, offset) / 2 + 30, mLinePaint2);
? canvas.drawLine((left + dipTopx(mContext, offset) / 2 - 3.5f), bottom
? ? - dipTopx(mContext, offset) / 2,
? ? left + dipTopx(mContext, offset) - 8f,
? ? bottom - dipTopx(mContext, offset) / 2, mLinePaint2);
? canvas.drawLine((left + dipTopx(mContext, offset) / 2), bottom
? ? - dipTopx(mContext, offset) / 2,
? ? (left + dipTopx(mContext, offset) / 2),
? ? bottom - dipTopx(mContext, offset) / 2 - 30f, mLinePaint2);
? canvas.drawLine((right - dipTopx(mContext, offset) + 8f), bottom
? ? - dipTopx(mContext, offset) / 2,
? ? right - dipTopx(mContext, offset) / 2,
? ? bottom - dipTopx(mContext, offset) / 2, mLinePaint2);
? canvas.drawLine((right - dipTopx(mContext, offset) / 2), bottom
? ? - dipTopx(mContext, offset) / 2 - 30f,
? ? right - dipTopx(mContext, offset) / 2,
? ? bottom - dipTopx(mContext, offset) / 2 + 3.5f, mLinePaint2);
?}
?@Override
?public void setBounds(Rect bounds) {
? super.setBounds(new Rect(bounds.left - dipTopx(mContext, offset) / 2,
? ? bounds.top - dipTopx(mContext, offset) / 2, bounds.right
? ? ? + dipTopx(mContext, offset) / 2, bounds.bottom
? ? ? + dipTopx(mContext, offset) / 2));
?}
?@Override
?public void setAlpha(int alpha) {
?}
?@Override
?public void setColorFilter(ColorFilter cf) {
?}
?@Override
?public int getOpacity() {
? return 0;
?}
?public int dipTopx(Context context, float dpValue) {
? final float scale = context.getResources().getDisplayMetrics().density;
? return (int) (dpValue * scale + 0.5f);
?}
}
使用
布局中:
? ? xmlns:tools="http://schemas.android.com/tools"
? ? android:layout_width="match_parent"
? ? android:layout_height="match_parent" >
? ? ? ? ? ? android:id="@+id/cropimage"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="match_parent" />
Activity中:
public class MainActivity extends ActionBarActivity {
?private CropImageView mView;
?@Override
?protected void onCreate(Bundle savedInstanceState) {
? super.onCreate(savedInstanceState);
? setContentView(R.layout.activity_main);
? mView = (CropImageView) findViewById(R.id.cropimage);
? //设置资源和默认长宽
? mView.setDrawable(getResources().getDrawable(R.drawable.test2), 300,
? ? 300);
? //调用该方法得到剪裁好的图片
? Bitmap mBitmap= mView.getCropImage();
?}
}