标签: android-imageview

Android:使用选择器为图像视图设置背景颜色

我正在尝试设置图像视图的背景颜色.

 <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)

android background colors css-selectors android-imageview

13
推荐指数
3
解决办法
5万
查看次数

如何在android中实现徒手图像裁剪?

我该如何实现徒手剪裁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)

java android crop android-imageview

13
推荐指数
1
解决办法
1758
查看次数

如何向Imageview显示边框?

朋友如何向Imageview显示边框?

我希望结果像移动画廊所有图像显示带边框.

请给我提前谢谢....

android image border imageview android-imageview

12
推荐指数
2
解决办法
5万
查看次数

如何在Android中设置ImageView的onClicklistener方法?

我正在添加一个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)

任何帮助将不胜感激.

android android-imageview

12
推荐指数
1
解决办法
6万
查看次数

如何在Android中为ImageView设置最小和最大大小

我想指定这两个分钟.宽度/高度和最大值 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)

比,最大 宽度和高度按照应有的方式执行,但最小值.宽度和高度被忽略.

有两种方法可以同时拥有吗?

android android-layout android-imageview

12
推荐指数
2
解决办法
9456
查看次数

ImageView坐标和位图像素之间的对应关系 - Android

在我的应用程序中,我希望用户能够选择一个包含在其中的图像的某些内容ImageView.

要选择内容,我将该ImageView类子类化,使其实现,OnTouchListener以便在其上绘制一个由用户决定的带边框的矩形.

下面是绘图结果的示例(要了解它的工作原理,您可以将其视为在桌面上单击鼠标并拖动鼠标时):

enter image description here

现在我需要确定哪些像素的的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)

java android android-image android-imageview

12
推荐指数
1
解决办法
6941
查看次数

矢量图像对Android有用吗?

我正在开发Android应用程序.我想用矢量图像.(.svg file)但我不自信最好的方法是使用矢量图像.

Svg-android.jar是没用的.不支持所有.svg文件类型.以后可能会有麻烦.另一方面,如果我使用矢量,对我来说很容易.特别是我不会在决议上工作.

我需要帮助.我必须尽快决定.

有什么建议?

svg android vector android-layout android-imageview

12
推荐指数
1
解决办法
1万
查看次数

裁剪图像后如何获得正确的路径?

我想裁剪捕获/选定图像并将其上传到服务器.

我面临的问题:裁剪图像后我没有获得裁剪图像的实际路径.我已经在下面完成了我的代码.我正确裁剪图像也一切正常,但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)

android image crop imageview android-imageview

12
推荐指数
1
解决办法
7931
查看次数

如何在不创建新位图的情况下获得圆形,中心裁剪的imageView?

注意:我知道有很多关于这个的问题和存储库,但似乎没有一个适合我试图实现的目标.

背景

给定任何宽高比的位图,我希望将其设置为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)

geometry android bitmap aspect-ratio android-imageview

12
推荐指数
2
解决办法
2521
查看次数

使ImageView具有深色透明度

我想在图像顶部添加透明的黑色,使其更暗.

在此输入图像描述

          <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 image android-layout android-imageview android-view

12
推荐指数
3
解决办法
7294
查看次数