안드로이드 개발 질문/답변
(글 수 45,052)
말그대록
xml파일에 같은 id값을 가진 ImageView 박스를 여러개 그리고
java파일에서 다음과 같이 해당 xml 파일내 photoid라는 iD값을 가진
모든 이미지 박스를 바꿔주고 싶습니다.
간단한코드인데
실행을 하면 첫번째 ImageView 박스만 해당 이미지가 들어가고
나머지는 빈박스로 나오네요...
도움좀 부탁 드립니다.
package com.supergenius.umcchat;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Bundle;
import android.widget.ImageView;
public class sg_umcchat extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView img = (ImageView) findViewById(R.id.photoid);
Bitmap bm = BitmapFactory.decodeResource(getResources(),
R.drawable.photo_id_sample);
img.setImageBitmap(getRoundedCornerBitmap(bm, 5));
}
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = pixels;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
2011.11.01 01:00:50
좀 쉽게하는 방법을 이야기하자면...
ImageView[] imgName = {img1, img2, img3}
이렇게 받아서
for(int i=0 l<imgName.length; i++)
{
int imgId = getResource.getidentifier(imgName[i], "id", null)
ImageView imgView = (ImageView)findbyID(imgId);
imgView.setbackground("이미지아이디");
}
머 이정도 되게네요 ㅎㅎ 아무튼 이 방법도 id,값은 서로 달라야합니다 ^^ 같을수가읍어여




아이디가 같은게 되나요...
아이덴티티...인데...-_-;;