我在imageView中添加了一个动画gif图像.我无法将其视为gif图像.没有动画.它看起来像一个静止图像.我想知道如何将其显示为gif图像.
我有一个ImageView,它有一个可绘制的图像资源设置到选择器.如何以编程方式访问选择器并更改突出显示和非突出显示状态的图像?
这是选择器的代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/iconSelector">
<!-- pressed -->
<item android:state_pressed="true" android:drawable="@drawable/btn_icon_hl" />
<!-- focused -->
<item android:state_focused="true" android:drawable="@drawable/btn_icon_hl" />
<!-- default -->
<item android:drawable="@drawable/btn_icon" />
</selector>
Run Code Online (Sandbox Code Playgroud)
我希望能够替换btn_icon_hl和btn_icon其他图像.
所以,我有一个imageview应该显示一个任意图像,一个从互联网上下载的个人资料图片.我希望ImageView能够缩放其图像以适应父容器的高度,并设置最大宽度为60dip.但是,如果图像比例较高,并且不需要完整的60dip宽度,则ImageView的宽度应该减小,以便视图的背景紧贴图像.
我试过这个,
<ImageView android:id="@+id/menu_profile_picture"
android:layout_width="wrap_content"
android:maxWidth="60dip"
android:layout_height="fill_parent"
android:layout_marginLeft="2dip"
android:padding="4dip"
android:scaleType="centerInside"
android:background="@drawable/menubar_button"
android:layout_centerVertical="true"/>
Run Code Online (Sandbox Code Playgroud)
但由于某些原因,这使得ImageView超大,也许它使用了图像的固有宽度和wrap_content来设置它 - 无论如何,它不尊重我的maxWidth属性.这只适用于某些类型的容器吗?它在LinearLayout中......
有什么建议?
我正试图制作一个ImageView包含图像库的图片.通过触摸用户请求加载下一个图像.如果在服务器中找不到下一个图像或需要时间加载,我需要将旧图像清空.
setVisibility(View.GONE)或者setVisibility(View.INVISIBLE)不为我工作,因为当看不见/消失时我停止onTouch()检测(并且用户被锁定到当前图像).
如何ImageView加载空位图或清除(删除)当前位图?
问题已被提出,并且我正在使用的毕加索版本有一个承诺:如何使用Picasso将圆形位图发送到ImageView?我是毕加索的新手,我唯一使用的是
Picasso.with(context).load(url).resize(w, h).into(imageview);
Run Code Online (Sandbox Code Playgroud)
我已经找到https://gist.github.com/julianshen/5829333但我不知道如何以非尴尬的方式将它与上面的行结合起来.
好吧,我一直在阅读和搜索,现在我正在撞墙,试图解决这个问题.这是我到目前为止所拥有的:
package com.pockdroid.sandbox;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.widget.ImageView;
public class ShadowImageView extends ImageView {
private Rect mRect;
private Paint mPaint;
public ShadowImageView(Context context)
{
super(context);
mRect = new Rect();
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setShadowLayer(2f, 1f, 1f, Color.BLACK);
}
@Override
protected void onDraw(Canvas canvas)
{
Rect r = mRect;
Paint paint = mPaint;
canvas.drawRect(r, paint);
super.onDraw(canvas);
}
@Override
protected void onMeasure(int w, int h)
{
super.onMeasure(w,h);
int mH, mW;
mW = getSuggestedMinimumWidth() < …Run Code Online (Sandbox Code Playgroud) 当我以编程方式更改图像时,它会在最初在布局文件中设置的旧图像上显示新图像?
这是我的布局文件的片段:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="39dp"
android:gravity="center_vertical" >
<ImageView
android:id="@+id/qStatusImage"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_margin="5dp"
android:background="@drawable/thumbs_down"
/>
<TextView
android:id="@+id/grp_child"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/radio_colors"
android:textStyle="normal"
android:background="@color/grey"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
以及设置imageView的代码:
@Override
public View getChildView(final int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
//Answers
if(answersGroup != null)
answersGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// int index = answersGroup.indexOfChild(findViewById(answersGroup.getCheckedRadioButtonId()));
qImageView = (ImageView) V.findViewById(R.id.qStatusImage);
if(ans ==0 || ans == 5){
// qSV.setImageResource(0);
qImageView.setImageResource(R.drawable.thumbs_up);
}
else
qImageView.setImageResource(R.drawable.thumbs_down);
}
});
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我有一个ImageView,我在程序上创建drawables并将它们呈现给用户.我的目标是点击说明ImageView并改变drawable的颜色.
我怎么去随机变色位?我目前正在修补Random(),Color.argb()还有一些其他的事情,但我似乎无法让它工作!
我正在制作幻灯片,我遇到了一些麻烦.
我在xml中创建了2个动画,用于淡入和淡出:
fadein.xml
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="2000"/>
</set>
Run Code Online (Sandbox Code Playgroud)
fadeout.xml
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="2000"/>
</set>
Run Code Online (Sandbox Code Playgroud)
我正在做的是使用淡入淡出效果从ImageView更改图像,因此当前显示的图像将淡出,另一个将淡入.考虑到我已经设置了图像,我可以淡出此图像而不用问题,这个:
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
imageView.startAnimation(fadeoutAnim);
Run Code Online (Sandbox Code Playgroud)
但是,我设置下一个要显示的图像:
imageView.setImageBitmap(secondImage);
Run Code Online (Sandbox Code Playgroud)
它只是出现在imageView中,当我设置动画时它会隐藏图像,淡入它...有没有办法解决它,我的意思是,当我做imageView.setImageBitmap(secondImage); 命令,图像不会立即显示,只有当淡入动画执行时?
我有一个ImageView显示png的宽高比比设备更大(垂直方向 - 意味着它更长).我希望在保持宽高比,匹配父级宽度以及将图像视图固定到屏幕顶部的同时显示它.
使用CENTER_CROP缩放类型时遇到的问题是,它(可理解)使缩放图像居中,而不是将顶边与图像视图的顶边对齐.
问题FIT_START是图像将适合屏幕高度而不是填充宽度.
我已经通过使用自定义ImageView解决了这个问题,onDraw(Canvas)并使用画布手动覆盖和处理此问题; 这种方法的问题是1)我担心可能有一个更简单的解决方案,2)super(AttributeSet)当在堆有3 mb空闲时尝试设置src img为330kb时,我在调用构造函数时遇到VM mem异常(堆大小为6 mb)并且无法解决原因.
任何想法/建议/解决方案都非常欢迎:)
谢谢
ps我认为解决方案可能是使用矩阵比例类型并自己做,但这似乎与我当前的解决方案相同或更多的工作!