我有一个显示图像数组的图库,点击它们时会显示在图像视图中.我希望能够分享当前在意图选择器中显示的图像.我无法弄清楚如何选择当前图像.
图库代码:
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mImageIds[position]);
imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setBackgroundResource(mGalleryItemBackground);
return imageView;
}
Run Code Online (Sandbox Code Playgroud)
意图选择代码:
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/png");
share.putExtra(Intent.EXTRA_STREAM,
Uri.parse("android.resource://com.appinfluence.fanapp.v1/drawable/" + Integer.toString(R.drawable.alright)));
startActivity(Intent.createChooser(share, "Share Image"));
Run Code Online (Sandbox Code Playgroud)
在哪里说R.drawable.alright我需要它以某种方式成为当前图像的变量.有任何想法吗?
我的项目中有一些图像.图像的名称存储在String中,我想设置setImageResource(R.drawable."....."); 使用图像名称的字符串,但问题是这不起作用.
我怎样才能做到这一点?
我在屏幕顶部放置了一个应用栏,它看起来如下图所示:

现在我想在图像上设置文本,以便图像如下所示:

如何在图像上设置文本?提前致谢
我想一个补充ColorFilter到ImageView.
目前我正在使用:
ImageView iv = (ImageView)findViewById(resIdOfImageToFilter);
iv.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
Run Code Online (Sandbox Code Playgroud)
我检查了多种模式PotterDuff,如SRC_IN,SRC等,但我没有得到任何的模式有什么区别...所有模式将整个ImageView完美的红色.
我需要在现有图像中混合使用RED颜色,这样图像看起来就会带有REDDISH色调....
Facebook应用程序在帖子上的小图像和用户也可以缩放到它的放大模式之间有一个很好的过渡动画.
在我看来,动画不仅根据以前的位置和大小放大和移动imageView,而且还显示内容而不是拉伸imageView的内容.
这可以通过我做的下一个草图看到:

他们是如何做到的呢?他们真的有2个观点动画来揭示内容吗?
他们是如何使它变得如此流畅,就像它是一个单一的视图?
当缩略图设置为中心裁剪时,我已经看到(链接在这里)的图像被放大到全屏的唯一教程不能很好地显示.
不仅如此,它甚至可以在Android的低API上运行.
有人知道有类似能力的图书馆吗?
编辑:我找到了一个方法,并发布了一个答案,但它是基于更改layoutParams,我认为它没有效率和推荐.
我尝试过使用正常的动画和其他动画技巧,但是现在这是唯一对我有用的东西.
如果有人知道该怎么做以使其更好地工作,请写下来.

是)我有的
我有一个箭头图像(如左图).当用户点击它时,它应该用动画旋转180度,看起来应该是正确的.
我做了什么
private void rotate(float degree, final int toggleV) {
final RotateAnimation rotateAnim = new RotateAnimation(0.0f, degree,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f);
rotateAnim.setDuration(500);
toggle.startAnimation(rotateAnim);
rotateAnim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
if (toggleV == 1)
toggle.setImageResource(R.drawable.toggle_up);
else
toggle.setImageResource(R.drawable.toggle_down);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
问题
我看到动画工作正常,但设置图像时有一点闪烁.可能是因为动画结束和设置图像时的时差.
如何删除此闪烁问题?你有更好的方法吗?
我正在用这个简单的方法创建一个程序小部件
private ImageView getModuleIconView(Module module) {
ImageView view = new ImageView(context);
view.setImageResource(module.getIconResId());
view.getLayoutParams().height = 50; //NullPointerException
return view;
}
Run Code Online (Sandbox Code Playgroud)
我得到NullPointer异常,因为getLayoutParams返回null.这是为什么?
我试图让用户触摸图像,然后基本上一个圆形放大镜将显示将允许用户更好地选择图像上的某个区域.当用户释放触摸时,放大的部分将消失.这用于几个照片编辑应用程序,我正在尝试实现我自己的版本.我下面的代码确实放大了图像视图的圆形部分,但是一旦我松开手指就不会删除或清除缩放.我目前设置一个位图到画布使用canvas = new Canvas(bitMap);然后设置imageview takenPhoto.setImageBitmap(bitMap); 我不知道我是否正确的方式.onTouch代码如下:
zoomPos = new PointF(0,0);
takenPhoto.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
shader.setLocalMatrix(matrix);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_MOVE:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_UP:
//clear zoom here?
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break; …Run Code Online (Sandbox Code Playgroud) android image-zoom touch-event android-imageview android-canvas
我的main.xml文件中有一个ImageView:
<ImageView
android:id="@+id/pageImage"
android:layout_width="270dp"
android:layout_height="45dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="25dp"
android:layout_marginTop="15dp"
android:scaleType="fitXY"
android:src="@drawable/pageimage" />
Run Code Online (Sandbox Code Playgroud)
我只需要以layout_height编程方式将其设置为另一个值.
另外,我需要在dp中设置值.所以它目前是45dp,我想在主要活动中将其更改为另一个值.
我试图用LayoutParams弄清楚如何做到这一点,但我无法成功.
谢谢.
目标:
创建可绘制和可缩放的imageview,
这意味着当我按下按钮时,它是可绘制的,
或者当我关闭时,这是可缩放的.
*请注意,图纸应与图像视图一起变焦
================================================== =============
最近我写了一个像这样的自定义可绘制图像视图:
public class DrawView extends ImageView {
private int color = Color.BLACK;
private float width = 4f;
private List<Holder> holderList = new ArrayList<Holder>();
private class Holder {
Path path;
Paint paint;
Holder(int color, float width) {
path = new Path();
paint = new Paint();
paint.setAntiAlias(true);
paint.setStrokeWidth(width);
paint.setColor(color);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
}
}
public DrawView(Context context) {
super(context);
init();
}
public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public DrawView(Context context, AttributeSet …Run Code Online (Sandbox Code Playgroud) android android-imageview android-canvas android-view android-drawable