我正在尝试设置图像视图的背景颜色.
<ImageView
android:id="@+id/my_image"
android:src="@drawable/my_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:layout_alignParentLeft="true"
android:background="@drawable/selector_image_view" />
Run Code Online (Sandbox Code Playgroud)
我正在使用以下选择器.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:background="@color/Violet" />
<item android:state_pressed="true" android:background="@color/red" />
<item android:background="@color/white" />
</selector>
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用带有运行时异常的选择器,它会崩溃.我究竟做错了什么?
我的logcat
E/AndroidRuntime( 4196): FATAL EXCEPTION: main
E/AndroidRuntime( 4196): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.X.XCamera/com.X.XCamera.XCameraActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
E/AndroidRuntime( 4196): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime( 4196): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime( 4196): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime( 4196): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime( 4196): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 4196): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 4196): …Run Code Online (Sandbox Code Playgroud) 我该如何实现徒手剪裁Imageview.
使用下面的代码,我能够绘制手绘路径,并能够裁剪图像,但我面临一些其他问题
现在到目前为止我已经尝试过了
这是我的代码
使用画布裁剪图像的代码
public class SomeView extends View implements View.OnTouchListener {
private Paint paint;
int DIST = 2;
boolean flgPathDraw = true;
Point mfirstpoint = null;
boolean bfirstpoint = false;
Point mlastpoint = null;
Bitmap bitmap;
Context mContext;
public SomeView(Context c, Bitmap bitmap) {
super(c);
mContext = c;
this.bitmap = bitmap;
setFocusable(true);
setFocusableInTouchMode(true);
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStyle(Paint.Style.STROKE);
paint.setPathEffect(new DashPathEffect(new float[]{10, 20}, 0));
paint.setStrokeWidth(5);
paint.setColor(Color.RED);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
this.setOnTouchListener(this);
points = new ArrayList<Point>();
bfirstpoint = false;
} …Run Code Online (Sandbox Code Playgroud) 朋友如何向Imageview显示边框?
我希望结果像移动画廊所有图像显示带边框.
请给我提前谢谢....
我正在添加一个ImageViews 数组并ImageView动态设置图像,我完成了它.但问题是如何设置/定义onClicklistener方法ImageView?
这是我的代码:
ImageView[] mImages;
int[] images={R.drawable.sandle_icon1, R.drawable.sandle_icon2,
R.drawable.sandle_icon3, R.drawable.sandle_icon4};
LinearLayout ll = new LinearLayout(this);
mScrollViewImage.removeAllViews();
ll.setOrientation(LinearLayout.VERTICAL);
mImages = new ImageView[images.length];
mScrollViewImage.addView(ll);
for (floop = 0; floop < sandleicon.length; floop++) {
mImages[floop] = new ImageView(this);
mImages[floop].setImageResource(images[floop]);
ll.addView(mImages[floop]);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我想指定这两个分钟.宽度/高度和最大值 ImageView的宽度/高度.图像应缩放以适合.
这样做:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="100dp"
android:maxWidth="200dp"
android:minHeight="100dp"
android:maxHeight="200dp"
android:src="@drawable/ic_launcher" />
Run Code Online (Sandbox Code Playgroud)
最小的 宽度和高度按照应有的方式执行,但最大值 宽度和高度被忽略.
如果我设置android:adjustViewBounds ="true":
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:minWidth="100dp"
android:maxWidth="200dp"
android:minHeight="100dp"
android:maxHeight="200dp"
android:src="@drawable/ic_launcher" />
Run Code Online (Sandbox Code Playgroud)
比,最大 宽度和高度按照应有的方式执行,但最小值.宽度和高度被忽略.
有两种方法可以同时拥有吗?
在我的应用程序中,我希望用户能够选择一个包含在其中的图像的某些内容ImageView.
要选择内容,我将该ImageView类子类化,使其实现,OnTouchListener以便在其上绘制一个由用户决定的带边框的矩形.
下面是绘图结果的示例(要了解它的工作原理,您可以将其视为在桌面上单击鼠标并拖动鼠标时):

现在我需要确定哪些像素的的Bitmap图像对应于所选择的部分.很容易确定哪些是ImageView属于矩形的点,但我不知道如何获得对应的像素,因为它ImageView具有与原始图像不同的纵横比.
我遵循这里特别描述的方法,但也在这里,但我并不完全满意,因为在我看来,对应关系是在像素和点之间的1对1 ImageView,并没有给我原始图像上的所有对应像素到选定的区域.
hoveredRect在其ImageView内部的点上调用矩形是:
class Point {
float x, y;
@Override
public String toString() {
return x + ", " + y;
}
}
Vector<Point> pointsInRect = new Vector<Point>();
for( int x = hoveredRect.left; x <= hoveredRect.right; x++ ){
for( int y = hoveredRect.top; y <= hoveredRect.bottom; y++ ){
Point pointInRect = new Point();
pointInRect.x …Run Code Online (Sandbox Code Playgroud) 我正在开发Android应用程序.我想用矢量图像.(.svg file)但我不自信最好的方法是使用矢量图像.
Svg-android.jar是没用的.不支持所有.svg文件类型.以后可能会有麻烦.另一方面,如果我使用矢量,对我来说很容易.特别是我不会在决议上工作.
我需要帮助.我必须尽快决定.
有什么建议?
我想裁剪捕获/选定图像并将其上传到服务器.
我面临的问题:裁剪图像后我没有获得裁剪图像的实际路径.我已经在下面完成了我的代码.我正确裁剪图像也一切正常,但imageview不显示原始图像而不是裁剪图像.
但是,当我在Bitmap photo = extras.getParcelable("data");内部获取位图时, onActivityResult()我会在imageview中显示裁剪图像.但是无法获得该裁剪图像的绝对路径.
任何人都可以指导我缺乏的地方.我试过很多SO链接,但无法得到我的问题的确切解决方案.
这是我的代码:
public class MainActivity extends Activity {
private Uri mImageCaptureUri;
private ImageView mImageView;
private static final int PICK_FROM_CAMERA = 1;
private static final int CROP_FROM_CAMERA = 2;
private static final int PICK_FROM_FILE = 3;
private String selectedImagePath = "";
boolean GallaryPhotoSelected = false;
public static String Finalmedia = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final String[] items = new String[] { "Take from camera",
"Select from …Run Code Online (Sandbox Code Playgroud) 注意:我知道有很多关于这个的问题和存储库,但似乎没有一个适合我试图实现的目标.
给定任何宽高比的位图,我希望将其设置为ImageView的内容(仅使用drawable,而不扩展ImageView),以便内容将被中心裁剪,但仍为圆形.
所有这一切,内存使用量最少,因为有时图像可能非常大.我不想为此创建一个全新的Bitmap.内容已经存在......
我发现的所有解决方案都没有我写过的东西:有些不是中心裁剪,有些人认为图像是方形的,有些是从给定的位图创建一个新的位图......
除了尝试各种存储库之外,我已经尝试过本教程,并尝试针对非方形宽高比进行修复,但我失败了.
这是它的代码,以防网站关闭:
public class RoundImage extends Drawable {
private final Bitmap mBitmap;
private final Paint mPaint;
private final RectF mRectF;
private final int mBitmapWidth;
private final int mBitmapHeight;
public RoundImage(Bitmap bitmap) {
mBitmap = bitmap;
mRectF = new RectF();
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
final BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
mPaint.setShader(shader);
mBitmapWidth = mBitmap.getWidth();
mBitmapHeight = mBitmap.getHeight();
}
@Override
public void draw(Canvas canvas) {
canvas.drawOval(mRectF, mPaint);
} …Run Code Online (Sandbox Code Playgroud) 我想在图像顶部添加透明的黑色,使其更暗.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/rest_image"
android:layout_width="match_parent"
android:layout_height="150dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我可以设置alpha参数,但颜色变化为白色.我想制作像这样的较暗的图像.我怎么能用xml或Java代码做到这一点.我会根据条件设置它.
谢谢.
android ×10
image ×3
crop ×2
imageview ×2
java ×2
android-view ×1
aspect-ratio ×1
background ×1
bitmap ×1
border ×1
colors ×1
geometry ×1
svg ×1
vector ×1